目次
ふりかえり

筆者
本記事は、SQLの基本、実務使用例編になります。
SQLの基礎に関しましては、
【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
本編に入ります!
LISTAGG関数の基本構文

筆者
まずは、基本構文から見ていきましょう!
LISTAGG(列名, '区切り文字')
WITHIN GROUP (ORDER BY 並び順指定)
列名: 結合したい値が入っている列。
'区切り文字': 値と値の間に入れる文字(例:カンマ,やスラッシュ/など)。
ORDER BY: 値をどの順番で並べるかを指定。
実務レベルの使用例を見ていこう!

筆者
実際に、SQLを使用してデータを確認していきましょう。
SQLに関しては以下を使用して解説していきます。
create table文、select文、insert文、update文、delete文、
drop table文、につきましては、過去にアップロードした
【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
目次の、「ふりかえり」のところにそれぞれの記事のリンクが
貼ってあるよ!
または、サイドバーのカテゴリーにSQLがあるから、そちらからでも
参照できます!
Oracle Live SQLで実行していきます!
今回、実行するSQLの一覧
CREATE TABLE(テーブル作成)
create table 従業員部署 (
社員ID varchar2(10),
部署名 varchar2(50)
);
INSERT INTO(データ追加)
insert into 従業員部署 (社員ID, 部署名) values ('1', '総務');
insert into 従業員部署 (社員ID, 部署名) values ('1', '営業');
insert into 従業員部署 (社員ID, 部署名) values ('1', '開発');
insert into 従業員部署 (社員ID, 部署名) values ('2', '開発');
insert into 従業員部署 (社員ID, 部署名) values ('2', '管理');
SELECT(LISTAGGで部署名を結合)
select
社員ID,
listagg(部署名, ', ') within group (order by 部署名) as 所属部署一覧
from 従業員部署
group by 社員ID;

まとめ表
| 用途 | 並び順が変わる対象 | 使用場所 |
|---|---|---|
WITHIN GROUP (ORDER BY) | 1つのセル内の文字列順 | LISTAGGなど集約関数の中 |
ORDER BY | 行そのものの順番 | SELECT文の最後に書く |

筆者
LISTAGGについて解説しました。
次回もお楽しみに!










コメント