我正在尝试创建一个简单的case语句,该语句将更新现有的 Total 列,该列的数值为:
如果总计小于2,则为“ A_1”;如果其他值小于
,则为“ B_2”UPDATE BASE_V1
SET TOTAL=
(CASE
WHEN TOTAL<2 THEN 'A_1'
ELSE 'B_2'
END
)
Error: Conversion failed when converting the varchar value 'B_2' to data type int
我尝试使用convert函数更改数据类型,但是不起作用
UPDATE BASE_V1
SET TOTAL=
(CASE
WHEN TOTAL<2 THEN CONVERT(VARCHAR(10),'A_1')
ELSE CONVERT(VARCHAR(10),'B_2')
END
)
答案 0 :(得分:0)
如果Total
是varchar列,则需要将其与字符串进行比较:
UPDATE BASE_V1
SET TOTAL=
(CASE
WHEN TOTAL<'2' THEN 'A_1'
ELSE 'B_2'
END
)
TOTAL<2
强制SQL尝试将Total
的所有值隐式转换为整数。将2
用单引号引起来可以进行字符串比较。