我有一个表,其中包括年份,开始和结束列,如下所示。它有几年了。不要问我为什么那里有一个叫4的年份,因为我不能告诉你。我只知道无法从表中删除它,否则Web应用程序将损坏。
year start end
2019 2019-01-01 2019-12-31
4 2019-04-01 2020-03-31
我使用此查询将记录插入到另一个表中。
INSERT INTO table2 (id, other, medicaid, commercial, year)
SELECT id, other,
medicaid, commercial,
4 as year
FROM crosstab_table
如您所见,查询中对4进行了硬编码。如何更改此查询以插入表1中所有年份的记录?例如,如何使用带有年份的表将下面的两个查询转换为一个查询。
INSERT INTO table2 (id, other, medicaid, commercial, year)
SELECT id, other,
medicaid, commercial,
4 as year
FROM crosstab_table;
INSERT INTO table2 (id, other, medicaid, commercial, year)
SELECT id, other,
medicaid, commercial,
2019 as year
FROM crosstab_table
您可以使用CROSS JOIN
:
INSERT INTO table2 (id, other, medicaid, commercial, year)
SELECT
ct.id, ct.other, ct.medicaid, ct.commercial,
s.year
FROM crosstab_table ct
CROSS JOIN (
SELECT year FROM table1
) s;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句