Как автоматически заполнить значения NULL при использовании формулы SPLIT в SQL? - PullRequest
0 голосов
/ 27 января 2020

Поэтому я пытаюсь выяснить, как бы я go использовал функцию SPLIT в большом запросе SQL при заполнении значений NULL, которые ассоциируются при использовании функции SPLIT. Для этого примера у меня есть две колонки в моей таблице в настоящее время, и она выглядит следующим образом:

    Name             |           Price
 Jake                |       19.99,20.00,21.00
 Jane                |       15.00,13.99,14.00
 Joe                 |       17.99,12.00,15.00,17.99
 John                |       18.00,10.00

Вывод, который я получаю в настоящее время, когда я делаю, SPLIT(Price, ',') AS Price_Split следующий:

    Name             |           Price
 Jake                |       19.99
                     |       20.00
                     |       21.00
 Jane                |       15.00
                     |       13.99
                     |       14.00
 Joe                 |       17.99
                     |       12.00
                     |       15.00
                     |       17.99
 John                |       18.00
                     |       10.00

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

    Name             |           Price
 Jake                |       19.99
 Jake                |       20.00
 Jake                |       21.00
 Jane                |       15.00
 Jane                |       13.99
 Jane                |       14.00
 Joe                 |       17.99
 Joe                 |       12.00
 Joe                 |       15.00
 Joe                 |       17.99
 John                |       18.00
 John                |       10.00

Как бы я go об автоматическом заполнении Имен, которые соответствуют правильно? Или я должен go об этом по-другому / по другой формуле? Любая помощь с этим будет высоко ценится !!

1 Ответ

2 голосов
/ 27 января 2020

Вам нужно UNNEST

WITH data AS(
  SELECT 'Joe' as name, SPLIT('17.99,12.00,15.00,17.99', ',') AS r 
)
SELECT
name,r
FROM data,
UNNEST(r) r


"name","r"
"Joe","17.99"
"Joe","12.00"
"Joe","15.00"
"Joe","17.99"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...