1

不确定这个标题是否合适,但这是我的场景......

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

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 的一个子集,所以如果可能的话,有人可以帮助我用最基本的功能编写它吗?

谢谢

4

2 回答 2

3

使用MAX,CASE和一个GROUP BY子句。

SELECT  Key1,
        CASE WHEN MAX(Scheduled) IS NULL
            THEN 'False'
            ELSE 'TRUE'
        END AS IsAnyScheduled
FROM    tableName
GROUP   BY Key1
于 2013-01-15T16:00:04.730 回答
0

你需要一个组:

select key1, (case when count(Scheduled) = 0 then 'false' else 'true' end) as IsAnyScheduled
from t
group by key1
于 2013-01-15T16:00:09.263 回答