【问题标题】:SQL Query returns opposite result (Case clause)SQL 查询返回相反的结果(Case 子句)
【发布时间】:2022-07-06 01:29:32
【问题描述】:

我有以下查询(雪花):

选择 *,案例 当 ID 为 NULL 时,则为 FALSE ELSE TRUE END 作为标志

来自我的表

我不明白为什么,但是当 ID 为空时,FLAG 为 TRUE,反之亦然。

这怎么可能?

【问题讨论】:

    标签: sql snowflake-cloud-data-platform


    【解决方案1】:

    查询丢失END

    SELECT *, CASE WHEN ID IS NULL THEN FALSE ELSE TRUE END AS FLAG
    FROM my_table
    

    并且可以简化:

    SELECT *, ID IS NOT NULL AS FLAG
    FROM my_table
    

    对于样本数据:

    CREATE OR REPLACE TABLE my_table
    AS
    SELECT NULL AS ID UNION SELECT 1;
    
    
    SELECT ID, 
      CASE WHEN ID IS NULL THEN FALSE ELSE TRUE END AS FLAG,
      ID IS NOT NULL AS Flag
    FROM my_table
    

    输出:

    【讨论】:

    • 我编辑了帖子,“结尾”就在那里。还是不行
    猜你喜欢
    • 2017-09-17
    • 2018-07-15
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    相关资源
    最近更新 更多