
[英]Using a CASE WHEN statement and an IN (SELECT…FROM) subquery
[英]using CASE WHEN in select statement
我正在使用以下情况的select语句。 应用CASE的列具有True,False和Null值。 我正在尝试将True和False分别显示为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,
我提供的输入是:
'1','ALL', 'ALL'
when prog.has_post_calc_screen IS NULL
THEN ... when prog.has_post_calc_screen IS NULL
而不是when prog.has_post_calc_screen = ''Null''
写(您可能还写ELSE ...
因为您已经处理过true和false,因此唯一可能的值为NULL)。
更新你也可以写
case
when prog.has_post_calc_screen = true then 'True'
else 'False'
END ....
您无法使用=
测试NULL值。 您必须改用IS NULL
,因此更改CASE
一行:
when prog.has_post_calc_screen IS NULL then ''False''
when COALESCE(prog.has_post_calc_screen,''False'') = ''False''then ''False''
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.