Разделить данные столбца через запятую на дополнительные столбцы, которые имеют более 50 полей - PullRequest
0 голосов
/ 12 октября 2018

Итак, я пытаюсь разбить данные столбца через запятую на дополнительные столбцы.

select max(array_length(regexp_split_to_array(tags, ','), 1)) from employee 

    The value is 61. 

Как изменить нижеприведенное, чтобы мне не нужно было вводить [xx] 61 раз?

select a[1], a[2], a[3], a[4], a[5], a[6]
from (
    select regexp_split_to_array(tags, ',')
    from employee
) as dt(a)

1 Ответ

0 голосов
/ 12 октября 2018

Как указал @ gordon-linoff, вы можете использовать regexp_split_to_table

Пример кода:

create table employee (tags varchar(50));

insert into employee values ('one,two,three'),('cow,chicken,rooster');`

select * 
from (
    select regexp_split_to_table(tags, ',')
    from employee
) as t

Результат:

 regexp_split_to_table
-----------------------
 one
 two
 three
 cow
 chicken
 rooster
...