У меня есть таблица, которая выглядит примерно так:
___COL_1___
'|A|B|C|'
'|D|A|'
'|X|Y|Z|A|'
'|Y|X|'
...
И я хочу создать новую таблицу, которая будет выглядеть так:
___COL_1___ ........... ___COL_2___
'|A|B|C|'.....................'|A|'
'|A|B|C|'.....................'|B|'
'|A|B|C|'.....................'|C|'
'|D|A|'........................'|D|'
'|D|A|'........................'|A|'
'|X|Y|Z|A|B|C|'...........'|X|'
'|X|Y|Z|A|B|C|'...........'|Y|'
'|X|Y|Z|A|B|C|'...........'|Z|'
'|X|Y|Z|A|B|C|'...........'|A|'
'|X|Y|Z|A|B|C|'...........'|B|'
'|X|Y|Z|A|B|C|'...........'|C|'
...
Поэтому я хочу рекурсивно присоединяться к группе для каждого элемента в строке.
Вам не нужна рекурсия, просто:
|
столбца,|
, если они вам нравятся.with my_data(col1) as (
values
('|A|B|C|'),
('|D|A|'),
('|X|Y|Z|A|'),
('|Y|X|')
)
select
col1,
format('|%s|', unnest(string_to_array(trim(col1, '|'), '|'))) as col2
from my_data
col1 | col2
-----------+------
|A|B|C| | |A|
|A|B|C| | |B|
|A|B|C| | |C|
|D|A| | |D|
|D|A| | |A|
|X|Y|Z|A| | |X|
|X|Y|Z|A| | |Y|
|X|Y|Z|A| | |Z|
|X|Y|Z|A| | |A|
|Y|X| | |Y|
|Y|X| | |X|
(11 rows)