【发布时间】:2015-11-13 16:08:04
【问题描述】:
面试官问我以下问题:
考虑下表:
tpid data
100 1
100 2
100 NULL
101 6
101 5
101 NULL
102 NULL
103 9
103 65
104 NULL
..
..
如果tpid 有任何数据,则显示数据而不是空值
但如果 tpid 只得到 null 则只针对 id 显示 null。
结果集应该是这样的:
tpid data
100 1
100 2
101 6
101 5
102 NULL
103 9
103 65
104 NULL
我写了以下查询,但它没有给出想要的结果:
;with cte as
(select tpid,count(data) as num from a group by TPID)
select a.TPID,
(case when cte.num=0 then NULL else a.DATA end)col
from cte
join A on a.TPID=cte.TPID
【问题讨论】:
标签: sql sql-server