gpt4 book ai didi

sql - 将表变量插入到具有多列(ID、数字等)的临时表中

转载 作者:行者123 更新时间:2023-12-05 04:13:53 27 4
gpt4 key购买 nike

我需要将多个表变量插入到一个临时表中。

其中一个表变量是:

DECLARE @@TempTable_Number TABLE (Number bigint) 

insert into @@TempTable_Number (Number) values ('000000000000');
insert into @@TempTable_Number (Number) values ('100000000000');

这适用于只插入一个表变量

select * into ##GlobalTempTable_1 from @@TempTable_Number

我还有几个表变量,比如

DECLARE @@TempTable_ID TABLE (Number int) 

insert into @@TempTable_ID (ID) values ('1');
insert into @@TempTable_ID (ID) values ('12');

等...

我尝试将多个表变量中的数据插入到一个 TempTable 中:

Select * into  ####GlobalTempTable_1 From @@TempTable_ID,  @@TempTable_Number;

查询进入连续循环...

编辑:

其中一个表变量是:

DECLARE @@TempTable_Number TABLE (Number bigint, ID int) 

insert into @@gvTempTable (Number) values ('21212321332332');
insert into @@gvTempTable (Number) values ('100000000000');
insert into @@gvTempTable (ID) values ('1');
insert into @@gvTempTable (ID) values ('12');

select * into ##GlobalTempTable from @@gvTempTable;
select * from ##GlobalTempTable;

这将返回一种笛卡尔积

Result sets

最佳答案

使用UNION ALL:

SELECT ID
INTO ##GlobalTempTable_1
FROM @@TempTable_ID
UNION ALL
SELECT Number
FROM @@TempTable_Number;

LiveDemo


Select * into  ####GlobalTempTable_1 From @@TempTable_ID,  @@TempTable_Number;

The query goes to a continuous loop...

这可能不是循环而是很长的查询。请记住,您做的是笛卡尔积

所以你的查询是一样的:

SELECT * 
INTO ##GlobalTempTable_1
FROM @@TempTable_ID
CROSS JOIN @@TempTable_Number;

结果是 NxM 条记录,其中 N 是第一个表中的记录数,M 是第二个表中的记录数。

关于sql - 将表变量插入到具有多列(ID、数字等)的临时表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36345465/

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