【发布时间】:2020-04-05 07:48:10
【问题描述】:
我正在尝试根据某些条件使用同一数据表中的其他列值更新列值(检查字段末尾是否有 .pdf)。在更新列值时,我必须删除 .pdf,然后使用 SUBSTRING() 进行分配。
Update Table_name
Set col_1 = SUBSTRING(col_2, 1, LEN(col_2 - 4))
Where col_2 like '%.pdf%'
但我得到一个错误
将 nvarchar 值 default.pdf 转换为数据类型 int 时转换失败
注意:col_1 和 col_2 都是 nvarchar(255) 类型
【问题讨论】:
-
我尝试了 CONVERT 和 CAST over SUBSTRING() 但同样的问题
-
为什么要在列中的任何位置搜索“.pdf”。您的逻辑基于字符串以 .pdf 结尾的假设,因此请保持您的陈述一致!思考!你应该有
where col_2 like N'%.pdf';你的专栏是nvarchar 吗?然后使用 unicode 文字。
标签: sql-server substring