iakioの日記 RSSフィード

2008-04-29

カンマ区切りの文字列を複数の行に分割する方法

| 02:31 | カンマ区切りの文字列を複数の行に分割する方法 - iakioの日記 を含むブックマーク はてなブックマーク - カンマ区切りの文字列を複数の行に分割する方法 - iakioの日記

ある列以外の全ての列をSELECTする方法(又は複数行をカンマ区切りで連結する方法) - iakioの日記 - postgresqlグループで書いた

=> select array_to_string(ARRAY(select t from tbl1), ',');
 array_to_string
-----------------
 aaa,bbb,ccc
(1 row)

の逆はできないのかな、とふと思いました。つまり、

=> select * from HOGEHOGE(string_to_array('aaa,bbb,ccc', ','));
 HOGEHOGE
----------
 aaa
 bbb
 ccc
(3 row)

となるような関数HOGEHOGEです。

で、無さそうなのでPL/pgSQLで作ってみました。

create or replace function array_enum(anyarray)
  returns setof anyelement as $$
declare
  i integer;
begin
  for i in array_lower($1, 1)..array_upper($1, 1) loop
    return next ($1)[i];
  end loop;
  return;
end;
$$ language plpgsql immutable strict;

PL/pgSQLってanyarray使えるんだ。

=> select * from array_enum(string_to_array('aaa,bbb,ccc', ','));
 array_enum
------------
 aaa
 bbb
 ccc
(3 rows)

5/2追記

コメントいただきました。8.3からregexp_split_to_table()という関数が追加されているそうです。

パターンマッチ - PostgreSQL 8.3.1文章

=> select regexp_split_to_table('aaa,bbb,ccc,ddd', ',');
 regexp_split_to_table
-----------------------
 aaa
 bbb
 ccc
 ddd
(4 rows)

これは簡単♪

syachi5150syachi51502008/04/30 19:378.3以降ならregexp_split_to_table()も使えそうですね

inhirekopunucinhirekopunuc2017/05/20 23:44http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

arwukaoarwukao2017/05/20 23:46http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

ovopbuyuhuwahovopbuyuhuwah2017/05/21 00:02http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

eyibvoovoreyibvoovor2017/05/21 00:18http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

ufacowaxufacowax2017/05/21 00:19http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

ufibofuralufibofural2017/05/21 00:30http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

omexgumihoduomexgumihodu2017/05/21 00:31http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

irigireuirigireu2017/05/21 00:41http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

utilabinereedutilabinereed2017/05/21 00:43http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

umdbudoumdbudo2017/05/21 00:45http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

aatiqixuzuloaatiqixuzulo2017/05/21 00:55http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

opukeletuwiopukeletuwi2017/05/21 01:22http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

ewazocumewazocum2017/05/21 01:35http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

juzimimanjuzimiman2017/05/21 04:43http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

ivobunaivobuna2017/05/21 04:57http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

igozominolureigozominolure2017/05/21 16:13http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

uvoveoxuvoveox2017/05/22 05:27http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

izkijamoekenizkijamoeken2017/05/22 05:41http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

aoqehijaoqehij2017/05/23 06:32http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

uanotepaodaguanotepaodag2017/05/23 18:50http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

eygenogeygenog2017/05/23 19:04http://100mgcheapest-price-viagra.com/ - 100mgcheapest-price-viagra.com.ankor <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

トラックバック - http://postgresql.g.hatena.ne.jp/iakio/20080429