繁体   English   中英

在select语句中使用CASE WHEN

[英]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.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM