如何在 SQL 服务器中 "replicate" 一条 select 语句?

how to "replicate" a select statement in SQL Server?

我需要使用以下 SELECT 插入 table:

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

如何在不手动的情况下执行此操作?

您可以使用 SQL 服务器 table-value 构造函数至少使这更容易一些 - 像这样:

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