SQL Server:选择distinct,但指示另一列是否为null?

时间:2013-01-15 15:58:10

标签: sql sql-server tsql

不确定该标题是否合适,但这是我的方案......

我有一个看起来像这样的表:

Key1     Key2   Scheduled    Data
----------------------------------
abc123    io       null      asdf    
abc123    go     01/02/13    asdf
abc321    er       null      asdf 
abc321    fr       null      asdf

我需要选择distinct来获取一组不同的Key1而不管其他列,但我还需要一个布尔来指示任何预定列设置的天气。理想情况下,我的结果集看起来像这样

Key1     IsAnyScheduled
-------------------
abc123      True
abc321      False

我不是一个SQL大师,看不懂怎么做。此外,我们的系统基于SQL Server,但它运行sql的一个子集,所以如果可能的话,有人可以帮助我用最基本的函数写这个吗?

由于

2 个答案:

答案 0 :(得分:3)

使用MAXCASEGROUP BY条款。

SELECT  Key1,
        CASE WHEN MAX(Scheduled) IS NULL
            THEN 'False'
            ELSE 'TRUE'
        END AS IsAnyScheduled
FROM    tableName
GROUP   BY Key1

答案 1 :(得分:0)

您需要一个小组:

select key1, (case when count(Scheduled) = 0 then 'false' else 'true' end) as IsAnyScheduled
from t
group by key1