Case
语句从result_expressions中的类型集和可选的else_result_expression返回最高优先级类型.由于0 (INT)
优先级高于Y (Varchar)
,Y
因此隐式转换为INT
您正在获得转换错误.
变化0
(INT
)到'0'
(String
)的ELSE
声明
Select CASE WHEN loc = 'J' THEN 'Y' WHEN loc <> 'J' THEN 'N' -- loc NOT IN ('J') ELSE '0' END