- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLでの条件分岐)
SQLでの条件分岐方法とフラグの判定方法について
このQ&Aのポイント
- SQLでの条件分岐方法として、外部結合を使用する方法があります。
- AとBのテーブルを外部結合し、Bに登録されているかどうかでフラグを設定します。
- (1)Aのみに登録された社員、(2)Bのみに登録された社員、(3)両テーブルに登録された社員を出すためには、フラグの値をもとに条件分岐を行います。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
動作確認していないので、間違っている場合はごめんなさい。 EXISTS/NOT EXISTSを使用して、Aのみ,Bのみ,両方を個別に抽出し、UNIONで結合するのはどうですか? ※フラグ値とソート順はよしなに -- Aのみに存在 SELECT A.EMP_NO, A.EMP_NAME, 'A' AS FLAG FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE B.EMP_NO = A.EMP_NO AND B.EMP_NAME = A.EMP_NAME ) UNION -- Bのみに存在 SELECT B.EMP_NO, B.EMP_NAME, 'B' AS FLAG FROM B WHERE NOT EXISTS (SELECT * FROM A WHERE A.EMP_NO = B.EMP_NO AND A.EMP_NAME = B.EMP_NAME ) UNION -- 両方に存在 SELECT A.EMP_NO, A.EMP_NAME, 'W' AS FLAG FROM A WHERE EXISTS (SELECT * FROM B WHERE B.EMP_NO = A.EMP_NO AND B.EMP_NAME = A.EMP_NAME )