SQL只选择其他列只有Null的组

时间:2017-12-08 14:09:49

标签: sql oracle

我有GROUP BY的SQL查询。 我想只选择在其他列中只有Null的组。

Select HH, TT from TABLE join TABLE... where XX GROUP BY HH

HH | TT 
1  | Null
2  | Null
2  | Test
3  | Null
3  | Null

我想只有那些:

 HH | TT 
 1  | Null
 3  | Null

我在甲骨文。

2 个答案:

答案 0 :(得分:0)

可以使用group byhaving来完成此操作。列TT的计数应返回0(因为count忽略空值)。

select HH,max(TT) as TT
from tbl
group by HH
having count(TT)=0

答案 1 :(得分:0)

nvl2是一个很好的功能,它可以帮助我们同时处理nullnot null值:

select hh, 'Null' tt
  from mytable
 group by hh
 having sum(nvl2(tt,1,0))=0;