Боковой Unnest -SQL - PullRequest
       10

Боковой Unnest -SQL

0 голосов
/ 15 февраля 2019

Lateral Unnest -ing вызывает у меня небольшую проблему.

У меня есть таблица, которая выглядит следующим образом:

Name  | Info
------|------
  A   | Info1, Info2, Info3
  B   | Info1, Info 2, Info3

Я хочу, чтобы она выглядела следующим образом:

Name  | Info
------|------
 A    | Info1 
 A    | Info2 
 A    | Info3 
 B    | Info1 
 B    | Info2 
 B    | Info3 

Там есть еще несколько столбцов.Я хочу, чтобы все держали их.Есть идеи?

1 Ответ

0 голосов
/ 15 февраля 2019

Если вы хотите использовать unnest():

select t.name, trim(i) as info
from t cross join lateral
     unnest(string_to_array(t.info, ',')) i;

Вам не нужно использовать unnest(), потому что вы можете разделить непосредственно на массив:

select t.name, trim(i) as info
from t cross join lateral
     regexp_split_to_table(t.info, ',') i;
...