gpt4 book ai didi

sql - SQL:如何动态循环并将N个具有NULL值的列添加到临时表中

转载 作者:行者123 更新时间:2023-12-04 23:46:54 26 4
gpt4 key购买 nike

由于一定的要求,我需要在存储过程中创建两个临时表,在将一些数据处理完之后,我需要将两个临时表合并以显示为一个结果集并生成为excel。所以我想在要显示最终结果集时使用UNION

问题是,第一个临时表(表A)固定为20列,第二个临时表有50列(表B)。我的计划是,在处理表A的数据之前,我想添加30个可为空的列并为前20列插入数据,其余的全部为NULL

处理表B的数据后,我使用UNION组合表A和B,以便它们将显示为一个结果集。

我现在可以想到的是,在声明临时表时,对一些注定具有空值的列进行硬编码:

Declare @tmpTableA table (
....
ProcessDate datetime,
Mode int,
Col21 varchar(10)
Col22 varchar(10)
....
Col50 varchar(50)
)


当我将数据插入表A时,必须从Col21开始手动添加null

Insert into(.... Col21, Col22, Col23....)
Values (.... NULL, NULL, NULL....)


完成表A和B的数据处理后,我使用 UNION合并表A和B

Select *....Col49,Col50 From Table A
Union
Select *....CompleteDate,ContactPerson From Table B


除了将Col21到Col50硬编码到表A中之外,还有什么好方法可以实现,例如使用 while循环向表A中动态添加N个列?

编辑:
根据最新要求,表B不仅有50列,而且还有100列!我真的需要一种动态循环这些列的方法,而不是对80多个列进行硬编码

最佳答案

我想你可以做

select * into #tableA from #tableB where 1=2


这两个表将具有相同的列

关于sql - SQL:如何动态循环并将N个具有NULL值的列添加到临时表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43135506/

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