从oracle表中查找不存在的值

时间:2018-11-17 23:52:58

标签: sql oracle oracle11g

我有一个ORACLE表,从那里我也必须找到不存在的数据。

在表的第二列中表示服务的状态,如果服务运行良好,有时状态将不会出现。因此需要一个SQL来取出值

表列和数据是:-

Service Name, Status of Service, Count
ABCD, Available, 4
ABCD, Non Available, 5
XYZ, Non Available, 4
QWERTY, Available, 2

请帮助进行以下查询的sql查询,如果前2列不可用,则计数应为0:-

Service Name, Status of Service, Count
ABCD, Available, 4
ABCD, Non Available, 5
XYZ, Available, 0
XYZ, Non Available, 4
QWERTY, Available, 2
QWERTY, Non Available, 0

1 个答案:

答案 0 :(得分:0)

使用cross joinleft join上的现有表生成服务和状态的所有组合。

select serv.service_name, serv_stat.status_service, coalesce(t.countCol,0) 
from (select distinct service_name from tbl) serv 
cross join (select distinct status_service from tbl) serv_stat
left join tbl t on t.service_name = serv.service_name and serv_stat.status_service = t.status_service