【问题标题】:find non-existent value from oracle Table从 oracle 表中查找不存在的值
【发布时间】:2018-11-17 23:52:58
【问题描述】:

我有一个 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

【问题讨论】:

    标签: sql oracle oracle11g


    【解决方案1】:

    使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2016-07-06
      相关资源
      最近更新 更多