質問: ### 前提・実現したいこと 対象のDBMSはSQL Server2012です。 下記のような2つのテーブルがあるとします。 | 社員ID | 部署コード | 社員名 | | --- | --- | --- | | 1 | A | 田中 | | 2 | A | 山田 | | 3 | B | 佐藤 | | 部署コード | 部署名 | | --- | --- | | A | 人事 | | B | 企画 | これを部署コードで結合したいのですが、 よくある普通の結合ではなく、 下記のように先頭にタイトルとなる行、 次行以降に詳細行、というような形で抽出するにはどのようなSQLとなるでしょうか? | 部署 | 社員名 | | --- | --- | | 人事 | | | | 田中 | | | 山田 | | 企画 | | | | 佐藤 | 宜しくお願い致します。
回答: 実行していないので正確に合っているかわかりませんが、こういうイメージでしょうか。 ``` SELECT B.部署名 AS 部署, B.社員名 FROM 部署テーブル A INNER JOIN ( SELECT 部署コード, 部署名, 0 AS 社員ID, NULL AS 社員名 FROM 部署テーブル UNION ALL SELECT 部署コード, NULL AS 部署名, 社員ID, 社員名 FROM 社員テーブル ) B ON A.部署コード = B.部署コード ORDER BY B.部署コード, B.社員ID ```