【发布时间】:2014-08-20 12:50:48
【问题描述】:
我今天遇到了这个复杂的 SQL,请不要挂断它的作用。
SELECT CASE
WHEN count(*) >= 1
THEN 1
ELSE 0
END
WHERE 1 = 1
“复杂”是指它似乎产生与此完全相同的结果:
SELECT 1
但这个问题并不是为什么要这样写。
我的问题是为什么以上是允许的。在不涉及表的情况下如何使用count(*)?算什么?
上面的查询执行并返回 1,我最初的反应是“这不可能工作”,但确实如此。
那为什么?
【问题讨论】:
-
我知道我以前见过这个,看看:stackoverflow.com/questions/8398772/select-count
-
那么它是重复的,请标记它。
标签: sql-server