select name, (regexp_split_to_array(name, '')) from table
結果は{a,b,c,d,e}
です。それを個々の行に分割し、名前でグループ化して、次のようにすることは可能ですか?
a 1
b 2
c 3
d 4
e 5
select name, (regexp_split_to_array(name, '')) from table
結果は{a,b,c,d,e}
です。それを個々の行に分割し、名前でグループ化して、次のようにすることは可能ですか?
a 1
b 2
c 3
d 4
e 5
unnest関数を探しています。
select name, unnest(regexp_split_to_array(name, '')) from table
ウィンドウ関数unnest()
で使用:row_number()
WITH test_table(name) AS ( VALUES
('abcde')
)
SELECT *,row_number() OVER () AS row FROM (
SELECT unnest(regexp_split_to_array(name,'')) AS name FROM test_table
) t;
結果:
name | row
------+-----
a | 1
b | 2
c | 3
d | 4
e | 5
(5 rows)
SOにも素晴らしい答えがあります: