Как «реплицировать» оператор выбора в SQL Server? - PullRequest
0 голосов
/ 07 декабря 2018

Мне нужно сделать вставку в таблицу со следующим SELECT:

select 1001, '2021-Q1', null, null
union 
select 1001, '2021-Q2', null, null
union
select 1001, '2021-Q3', null, null
union 
select 1001, '2021-Q4', null, null

Мне нужно сделать это, пока я не достигну 2030. Все остальное то же самое.

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

select 1001, '2022-Q1', null, null
union 
select 1001, '2022-Q2', null, null
union
select 1001, '2022-Q3', null, null
union 
select 1001, '2022-Q4', null, null

Как я могу сделать это без необходимости делать это вручную?

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете использовать конструктор табличных значений SQL Server, чтобы хотя бы сделать это немного проще - что-то вроде этого:

SELECT
    1001,
    CAST(AYear AS VARCHAR(4)) + '-' + AQuarter,
    NULL,NULL 
FROM
    (VALUES(2021), (2022), (2023), (2024), (2025), (2026), (2027), (2028), (2029), (2030)) AS YT(AYear)
CROSS JOIN
    (VALUES('Q1'), ('Q2'), ('Q3'), ('Q4')) AS QT(AQuarter)
ORDER BY
    AYear, AQUarter
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...