Заполните список значений для каждой категории - PullRequest
0 голосов
/ 04 октября 2019

Я извлекаю следующую таблицу:

SELECT NAME FROM TABLE

  NAME
  A-1
  A-1
  A-1
  A-2
  A-2
  A-2
  A-2

и у меня есть список значений

['value_1', 'value_2', 'value_3', 'value_4', 'value_5',]

, которыедолжно быть заполнено для каждого уникального имени:

  NAME   VALUES
  A-1  value_1
  A-1  value_2
  A-1  value_3
  A-1  value_4
  A-1  value_5
  A-2  value_1
  A-2  value_2
  A-2  value_3
  A-2  value_4
  A-2  value_5

Как это можно сделать в SQL? VALUES вводятся как константы, а не из любой другой таблицы

1 Ответ

2 голосов
/ 04 октября 2019

Если список значений фактически содержится в другой таблице, то здесь будет работать перекрестное объединение:

SELECT
    n.name,
    v.value
FROM names n
CROSS JOIN vals v
ORDER BY
    n.name,
    v.value;

Данные:

WITH names AS (
    SELECT 'A-1' AS name UNION ALL
    SELECT 'A-2'
),
vals AS (
    SELECT 'value_1' AS value UNION ALL
    SELECT 'value_2' UNION ALL
    SELECT 'value_3' UNION ALL
    SELECT 'value_4' UNION ALL
    SELECT 'value_5'
)

Демо

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