あるカラムにカンマ区切りでデータが入っており、それを簡単に分割したいという場合があります。
(※Postgres9にて確認)

このような場合は、regexp_split_to_tableを利用すると簡単に実現することが可能です。

hogeテーブルに下記のデータが入っているとします。

ID numebr
1 1,2,3,4,5
2 6,7,8,9,10
SELECT id,regexp_split_to_table(number, ',') FROM hoge
---------------------------
ID,regexp_split_to_table(number, ',')
1 1
1 2
1 3
1 4
1 5
2 6
2 7
2 8
2 9
2 10
---------------------------

上記のように分割されるのでとても便利です。
また、カンマだけでなく引数を変えることでスペース区切りなどでも対応することが可能です。

参考
http://postgresql.g.hatena.ne.jp/iakio/20080429/1209490294

こちらの記事はなかの人(kenjionsoku)監修のもと掲載しています。
元記事は、こちら