文字列のsplit ⇒ 行処理するSQL (ORACLE) - Oboe吹きプログラマの黙示録
を書いたので、PostgreSQL で同じことをしてみる。
方法は2通り。
string_to_array() を使う。
WITH strings AS ( SELECT UNNEST(string_to_array('A,B,C', ',')) AS split_value ) SELECT row_number() OVER () AS position , split_value , COUNT(*) OVER() AS splitlength FROM strings
string_to_table() を使う
WITH strings AS ( SELECT string_to_table('A,B,C', ',') AS split_value ) SELECT row_number() OVER () AS position , split_value , COUNT(*) OVER() AS splitlength FROM strings
結果は、
| position | split_value | splitlength |
| 1 | A | 3 |
| 2 | B | 3 |
| 3 | C | 3 |