オラクルを極める!⑥【文字列を横に連結する ユーザー定義集計関数 編】

NO IMAGE

SUM関数の文字列版があれば便利だと思ったことはありませんか?
グループ化したレコードをカンマ区切りで出力したいときなど。

ORACLEの場合、デフォルトでこのような関数が用意されていないので自前で関数を作成する必要があります。

ここを参考に。
ORACLE(ユーザー定義集計関数)

集計関数を自前できれば、プログラム内で文字列を結合していくという手間が省けます。

下記の例では、CHAR_SUMというユーザー定義集計関数を作成してみました。
CR5.gif

NAMEという列に入った文字列がカンマ区切りで、グループ化されています。

使用テーブル
CR4.gif

ただこのままでは、連結文字列の中の並び順を指定することができません。
(画像の例では、北海道、青森・・・の順で連結文字列の中を並び替えたい等)

そんなときは、分析関数などを使用します。

分析関数

CR6.gif

ID順に連結文字列の中を並び替えています。
(北海道が連結文字列の中で先頭にきている)

おしまい