我有一堆字母数字代码存储为Nvarchar。我想取所有以1开头的代码,并将.00001附加到它们的末尾。我试过这个代码
,CASE
WHEN left(1,[CASE_CODE]) = '1'
THEN concat([CASE_CODE],'.00001')
ELSE [CASE_CODE]
END as [CASE_CODE]
但是我收到这个错误信息
消息245,级别16,状态1,第2行将nvarchar值"PVC00595"转换为数据类型int时转换失败。
LEFT函数是否由于某种原因而转换为int?
根据文档,left
采用一个字符表达式,后跟一个整数表达式。您的错误来自left(1,[CASE_CODE])
试图将CASE_CODE
转换为整数表达式(因为它是第二个参数(。
您需要left([CASE_CODE], 1)
(反向参数(。