gpt4 book ai didi

sql-server - UNION ALL 在每个表中具有不同列数的 3 个表上 - 如何有效地这样做

转载 作者:行者123 更新时间:2023-12-04 01:35:45 26 4
gpt4 key购买 nike

我想在 3 个不同的表上使用 UNION ALL,然后使用 SELECT INTO 将它们合并到一个表中。

表1、2、3分别有15、7、8列。

那么,有没有一种方法可以让我使用 UNION ALL 并将表 2 和表 3 的缺失列默认为 NULL,而无需单独对它们进行分类?

例如,我一直在做:

SELECT  NULL as [Company_Code], NULL as [Doc_Code], 
NULL as [Doc_Type], [H ID] as [Document_No] FROM [table_2]
INTO BIG_TABLE
UNION ALL
SELECT
[Document Company] as [Company_Code], [Document Company] as [Doc_Code],
[Doc Type] as [Doc_Type], NULL as [Document_No]
FROM [table_3]

这样,列数就匹配了,我可以对它们进行 UNION。

但是,我想知道是否有一种方法可以避免繁琐的机制来避免为每个丢失的列插入 NULL,并一次性自动完成?

谢谢。

最佳答案

简而言之,没有。 Union结果集必须具有相同的列数/数据类型。如果你想让剩余的集合填充 null,最简单的方法就是做这样的事情-

select col1
, col2
, col3
, col4
from tbl1

union all

select null as col1
, null as col2
, null as col3
, null as col4
from tbl2

关于sql-server - UNION ALL 在每个表中具有不同列数的 3 个表上 - 如何有效地这样做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34259307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com