Как разделить один ряд на разные? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть столбец data в таблице postgresql, который получает такие данные: |A|C|F|L|T|U|

Другие столбцы: name, date

Пример:

NAME    | DATE       | DATA
ALYSSON | 2019-01-01 | |A|B|C|

Как создать возвращаемое значение:

NAME    | DATE       | DATA
ALYSSON | 2019-01-01 | A
ALYSSON | 2019-01-01 | B
ALYSSON | 2019-01-01 | C

1 Ответ

1 голос
/ 16 октября 2019

Вы можете использовать string_to_array вместе с unnest, чтобы разбить ваши данные сначала на массив, а затем на отдельные строки.

select * FROM (
  select name, date, unnest(string_to_array(data, '|')) as data from stuff
) AS sub
WHERE sub.data != '';

Предложение WHERE требуется для удаления пустых строк в начале и конце ваших данных.

...