【问题标题】:SELECT with a COUNT(*) in there, but no FROM TABLE, allowed, Why? [duplicate]SELECT 里面有一个 COUNT(*),但不允许 FROM TABLE,为什么? [复制]
【发布时间】:2014-08-20 12:50:48
【问题描述】:

我今天遇到了这个复杂的 SQL,请不要挂断它的作用。

SELECT CASE 
        WHEN count(*) >= 1
            THEN 1
        ELSE 0
        END
WHERE 1 = 1

“复杂”是指它似乎产生与此完全相同的结果:

SELECT 1

但这个问题并不是为什么要这样写。 我的问题是为什么以上是允许的。在不涉及表的情况下如何使用count(*)?算什么?

上面的查询执行并返回 1,我最初的反应是“这不可能工作”,但确实如此。

那为什么?

【问题讨论】:

标签: sql-server


【解决方案1】:

同样的原因:

Select GetDate()

在这种情况下,将返回带有当前系统日期和时间的单行。添加 Count(*) 将返回 1,因为正在返回 1 行。

【讨论】:

    猜你喜欢
    • 2014-12-12
    • 2014-12-02
    • 2013-06-28
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    相关资源
    最近更新 更多