【发布时间】:2011-05-02 23:46:28
【问题描述】:
我想根据计数结果做一个案例陈述。
类似:
SELECT
CASE
WHEN count(distinct column) = 1
THEN Foo
WHEN count(distinct column) = 2
THEN foo2
END,
column2
FROM
TABLE
上面抛出的错误如:
Column 'column2' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
我尝试了其他一些类似的变体,但都无济于事。
使用 MS SQL 2005。
【问题讨论】:
-
最好解释一下您实际尝试解决的问题...
-
同时告诉我们您正在使用哪个 RDBMS。
-
@Mitch - 基本上,如果有多个值(例如“狗、猫、山羊、foo”),我需要选择“%term%”之类的列,我只需要否则为单个值。
-
看来您将使用
COUNT()而没有GROUP BY,这意味着您将所有行收集(计数)为一个。因此, column2 无法真正显示。可以显示的是MAX(column2)或COUNT(column2)或SUM(column2)或column2 上的其他聚合函数。 -
你不能从错误信息中得到什么?它包含对您做错了什么的全面描述。
标签: sql sql-server-2005 count case