我正在尝试创建一个简单的case语句,该语句将更新现有的Total列,该列的数值为:
"A_1"如果总计小于2,或"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
)
如果Total
是varchar列,则需要将其与字符串进行比较:
UPDATE BASE_V1
SET TOTAL=
(CASE
WHEN TOTAL<'2' THEN 'A_1'
ELSE 'B_2'
END
)
TOTAL<2
强制SQL尝试将Total
的所有值隐式转换为整数。将2
放在单引号中使其成为字符串比较。