代码之家  ›  专栏  ›  技术社区  ›  user391986

SQL子查询计数大小写

  •  1
  • user391986  · 技术社区  · 15 年前

    如果嵌套子查询的计数为0,我希望选择查询返回特定值…

    SELECT
      ( SELECT (CASE COUNT(*) = 0 THEN 'TRUE' ELSE 'FALSE' END)
        FROM List
        WHERE Status = 1
          AND Deleted = 1
      ) AS Status
    

    这不起作用。这个语法有什么问题?

    2 回复  |  直到 15 年前
        1
  •  8
  •   Will A    15 年前

    我相信你想要一个像这样的案例陈述:

    CASE
     WHEN EXISTS(SELECT * FROM list WHERE Status = 1 AND Deleted = 1) THEN 'FALSE'
     ELSE 'TRUE'
    END
    
        2
  •  1
  •   bobs    15 年前

    您的查询在case语句中缺少when关键字。

    SELECT
      ( SELECT (CASE WHEN COUNT(*) = 0 THEN 'TRUE' ELSE 'FALSE' END)
        FROM List
        WHERE Status = 1
          AND Deleted = 1
      ) AS Status
    

    您可以这样做,也可以通过删除外部select语句来简化查询。括号也是可选的。

    SELECT CASE WHEN COUNT(*) = 0 THEN 'TRUE' ELSE 'FALSE' END
    FROM List
    WHERE Status = 1
      AND Deleted = 1