如何在 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
我需要使用以下 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