我正在使用以下用于选择语句的情况.应用CASE的列具有True,False和Null值.我试图为False和Null显示True for True和False.但它给我一个错误信息说:
"将varchar值'Null'转换为数据类型位时转换失败."
这是我的查询:
case
when prog.has_post_calc_screen = ''True'' then ''True''
when prog.has_post_calc_screen = ''False''then ''False''
when prog.has_post_calc_screen = ''Null'' then ''False''
End as Referal_ID,
Run Code Online (Sandbox Code Playgroud)
我给的输入是:
'1','ALL', 'ALL'
Run Code Online (Sandbox Code Playgroud)
而不是when prog.has_post_calc_screen = ''Null''
写when prog.has_post_calc_screen IS NULL
THEN ...(你也可以写,ELSE ...
因为你已经处理了 true 和 false,所以唯一可能的值为 NULL)。
更新 你也可以只写
case
when prog.has_post_calc_screen = true then 'True'
else 'False'
END ....
Run Code Online (Sandbox Code Playgroud)