SQL-SET演算子
UNIX,UNIX ALL:和セット
UNION
2つのクエリーで選択されたすべてのローが含まれますが、重複する値は1回のみ表示されます.
最初のカラム基準ASCソート.
UNION ALL
すべての重複行を含む2つのクエリーで選択されたすべての行が表示されます.
MINUS:サブセット
2番目の選択文で、最初の選択されていない文によって選択されたすべての一意の行.
(ORACLEにはありますが、他のDBMSにはありませんので、単独で実施する必要があります.)
INTERSECT:交差
INTERSECTは2つのクエリーを組み合わせて、最初の選択文で
2番目の選択文に一致する少なくとも1行を返します.
SET演算子使用説明 SELECTリストの式の数とデータ型は一致する必要があります. ORDER BYセクションは、文の最後にのみ使用できます. ORDER BYセクションで使用されるカラム名またはエイリアスは、第1のSELECT文リストと一致する必要があります. SET演算子は、サブクエリで使用できます. 例1)
例2)「FORDの上司=>JONES」として、上司がいない社員は「上司がいない」として問い合わせる.
UNION
2つのクエリーで選択されたすべてのローが含まれますが、重複する値は1回のみ表示されます.
最初のカラム基準ASCソート.
UNION ALL
すべての重複行を含む2つのクエリーで選択されたすべての行が表示されます.
MINUS:サブセット
2番目の選択文で、最初の選択されていない文によって選択されたすべての一意の行.
(ORACLEにはありますが、他のDBMSにはありませんので、単独で実施する必要があります.)
INTERSECT:交差
INTERSECTは2つのクエリーを組み合わせて、最初の選択文で
2番目の選択文に一致する少なくとも1行を返します.
SET演算子使用説明
SELECT deptno, to_char(null) location, hiredate
FROM emp
UNION
SELECT deptno, dname, to_date(null)
FROM dept;
TO CHAR(NULL)、TO DATE(NULL)は、DNOM、HIREDATE、およびデータ型に一致するように生成される列である.例2)「FORDの上司=>JONES」として、上司がいない社員は「上司がいない」として問い合わせる.
----OUTER JOIN 사용
SELECT LPAD(E.ENAME || '의 상사 => ' || NVL(M.ENAME,'상사없음'), 30) 사원상사
FROM EMP E
LEFT OUTER JOIN EMP M ON E.MGR = M.EMPNO;
----⭐⭐UNION ALL 사용
SELECT LPAD(W.ENAME,10) ||'의 상사 => ' ||M.ENAME 사원상사
FROM EMP W, EMP M
WHERE W.MGR = M.EMPNO
UNION ALL
SELECT LPAD(ENAME,10) ||'의 상사 => 상사없음'
FROM EMP
WHERE MGR IS NULL;
Reference
この問題について(SQL-SET演算子), 我々は、より多くの情報をここで見つけました https://velog.io/@mindddi/SQL-ANSI-JOINテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol