share facebook facebook twitter menu hatena pocket slack

2011.10.12 WED

Postgres カンマ区切りを分割

櫛田 草平

WRITTEN BY 櫛田 草平

あるカラムにカンマ区切りでデータが入っており、それを簡単に分割したいという場合があります。
(※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)監修のもと掲載しています。
元記事は、こちら

櫛田 草平

櫛田 草平

cloudpackで運用、保守、構築、夜間対応を担当しており、日々様々な課題に対応していますのでこの経験を記事にしていけたらと思います。 櫛田 草平

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。