[英]Oracle Query to get the records which are not in the results sets
我有一個場景,我需要查詢表以查看特定記錄集中不存在多少記錄。
例如 - 我有一個記錄集 (deptno1,deptno2....deptno100)
表 - Emp1
我想知道該記錄集中有多少記錄沒有出現在表 emp1 中。
如果我運行這個查詢 - select * from emp1 where deptno notin(deptno1....deptno100) 它給出的記錄不是 100 條記錄,盡管這 100 條記錄可能在該表中
您可以使用:
WITH data (deptno) AS (
SELECT 'deptno1' FROM DUAL UNION ALL
SELECT 'deptno2' FROM DUAL UNION ALL
-- ...
SELECT 'deptno100' FROM DUAL
)
SELECT d.deptno
FROM data d
LEFT OUTER JOIN emp1 e
ON (d.deptno = e.deptno)
WHERE e.deptno IS NULL;
您可以使用 connect by 生成值。
使用 d(dept) AS (select 'deptno' || to_char(level) from dual connect by level <= 100) select d.dept from d left join emp1 e on (d.dept = e.deptno)是 null;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.