条件数据类型转换|SQL Server



我正在尝试创建一个简单的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放在单引号中使其成为字符串比较。

最新更新