获取没有特定值的结果

时间:2016-10-04 03:50:29

标签: sql oracle

示例数据(Oracle DB)

HID   Result    ResultDate
6150  Interim    23-03-1990
6150  FINAL      24-03-1990
6150  Interim    25-05-1990
6180  Interim    30-08-2016
6190  Interim    31-08-2016

我被要求找到所有没有最终结果的HID。

预期的输出是

    HID   Result    ResultDate
    6180  Interim    30-08-2016
    6190  Interim    31-08-2016

1 个答案:

答案 0 :(得分:2)

这里有一个选项countcase

select hid
from yourtable
group by hid
having count(case when result = 'FINAL' then 1 end) > 0

这会返回61806190,因为他们没有result = 'final'的任何相应行。

根据您的修改,这里有一个使用not exists的选项:

select * 
from yourtable y
where not exists (
    select 1
    from yourtable y2
    where y.hid = y2.hid and y2.result = 'FINAL'
)