Как превратить столбец разделенных запятыми строк в массив строк - PullRequest
1 голос
/ 26 сентября 2019

У меня есть эта таблица в PostgreSQL с одним из столбцов, представляющих собой строку, содержащую nconsts под названием directors.Строки отформатированы как nm00386378,nm97284993, и мне нужно превратить каждую строку в массив, например: {"nm00386378","nm97284993"}

Я попробовал следующий код, но я думаю, что он просто превратил строку в массив с одним значением:

alter table crew_text
    alter directors drop default,
    alter directors type text[] using array[directors],
    alter directors set default '{}';

Я получил {"nm00386378,nm97284993"} для значений массива, но я ожидаю {"nm00386378","nm97284993"}.

Ответы [ 2 ]

2 голосов
/ 27 сентября 2019

Использование string_to_array() примерно так:

alter table crew_text
   alter directors drop default
,  alter directors type text[] using string_to_array(directors, ',')
,  alter directors set default '{}';

дБ <> скрипка здесь

Только курортк функциям регулярных выражений при необходимости.Они более мощные, но также более сложные и существенно более дорогие.

1 голос
/ 26 сентября 2019

Попробуйте следующее USING предложение для ALTER TABLE ... ALTER ... TYPE:

USING regexp_split_to_array(directors, ',')
...