gpt4 book ai didi

sql-server - 创建具有动态列数的临时表

转载 作者:行者123 更新时间:2023-12-01 00:23:39 26 4
gpt4 key购买 nike

我正在尝试创建一个具有动态列数的临时表:

set @cmd = ' SELECT * into #temp3 from
(
select * from sometable
) x pivot
(
max(buildrate)
for name in ('+ @columns +')
) as y '

execute(@cmd);

select * from #temp3 left join performed in an elegant way...

我需要在其他处理中使用该表中的内容。

有什么合理的方法可以做到这一点吗?

最佳答案

一种解决方法是使用全局临时表:

SET @cmd = ' SELECT * INTO ##temp3 FROM
(
select * from sometable
) x pivot
(
max(buildrate)
for name in ('+ @columns +')
) as y '

EXECUTE(@cmd);

SELECT *
INTO #temp3
FROM ##temp3;

DROP TABLE ##temp3;

SELECT *
FROM JOIN #temp3
LEFT ...;

普通的本地临时表将不起作用,因为动态 SQL 会创建新的上下文。该表位于该上下文中,并且在执行代码时将不复存在,因此您不能在 Dynamic-SQL 之外使用它。

关于sql-server - 创建具有动态列数的临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33216250/

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