假设您想按照以下方式做一些事情:
SELECT CASE
WHEN (SELECT COUNT(id) FROM table WHERE column2 = 4) > 0
THEN 1 ELSE 0 END
基本上只在表中有一行或多行时返回 1,否则返回 0。必须有一个语法正确的方法来做到这一点。可能是什么?谢谢!
假设您想按照以下方式做一些事情:
SELECT CASE
WHEN (SELECT COUNT(id) FROM table WHERE column2 = 4) > 0
THEN 1 ELSE 0 END
基本上只在表中有一行或多行时返回 1,否则返回 0。必须有一个语法正确的方法来做到这一点。可能是什么?谢谢!
问题:当表中有一行或多行时返回 1,否则返回 0:
在这种情况下,不需要COUNT
. 取而代之的是 use EXISTS
,它不是计算所有记录,而是在找到任何记录后立即返回,它的性能要好得多:
SELECT CASE
WHEN EXISTS (SELECT 1 FROM table WHERE column2 = 4)
THEN 1
ELSE 0
END
你可以这样做:
SELECT CASE WHEN COUNT(ID) >=1 THEN 1 WHEN COUNT (ID) <1 THEN 0 END FROM table WHERE Column2=4