可以将exec执行的结果插入临时表吗 sql2000

dusttosky 2011-11-04 01:42:27
我想把下面执行得到的结果放进临时表#a,请问可以吗? 如何实现?


select * into #a from( \\\ 我以为这样写可以,但却不行.....

declare @s nvarchar(4000)
set @s=''
Select @s=@s+','+quotename(老师)+'=sum(case when 老师='+quotename(老师,'''')+' then 成绩 else 0 end)'
from (select distinct 老师 from tb)t
exec('select 学生'+@s+' from tb group by 学生') )a

...全文
409 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
decher 2011-11-04
  • 打赏
  • 举报
回复

做一個if的分類來根據條件來創建跟插入臨時表
if @type = 1
begin
create table #temp1
(
field1 varchar(10)
)
insert into #temp1
exec('select 学生 from tb group by 学生')
return 0;
end
if @type = 2
begin
create table #temp2
(
field1 varchar(10),
field2 varchar(20)
)
insert into #temp
exec('select 學生 , 老師 from tb group by 学生')
return 0;
end
......




中国风 2011-11-04
  • 打赏
  • 举报
回复
臨時使用,可用全局臨時表


declare @s nvarchar(4000)
set @s=''
Select @s=@s+','+quotename(老师)+'=sum(case when 老师='+quotename(老师,'''')+' then 成绩 else 0 end)'
from (select distinct 老师 from tb)t
exec('select 学生'+@s+' ##a from tb group by 学生') )a

select * from ##a
dusttosky 2011-11-04
  • 打赏
  • 举报
回复
查了查资料... 要创建临时表, 可是我的字段是动态的. 郁闷了. 有解决方法吗?
dusttosky 2011-11-04
  • 打赏
  • 举报
回复
如无愚昧..我不知道如何创建这个#a 临时表, 我一直都是用select * into #a from来创建的..

是还有其他办法吗?

--小F-- 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dusttosky 的回复:]
提示 :对象名 '#a' 无效。



SQL code

declare @s nvarchar(4000)
set @s=''
Select @s=@s+','+quotename(khr)+'=sum(case when khr='+quotename(khr,'''')+' then khfs else 0 end)'
from (select distinct khr ……
[/Quote]

临时表有作用域的。你不先创建好就会出问题
gogodiy 2011-11-04
  • 打赏
  • 举报
回复
先创建#a这张临时表,再使用小F的语句。
SQL777 2011-11-04
  • 打赏
  • 举报
回复
declare @s nvarchar(4000)
set @s=''
Select @s=@s+','+quotename(老师)+'=sum(case when 老师='+quotename(老师,'''')+' then 成绩 else 0 end)'
from (select distinct 老师 from tb)t
exec('select 学生'+@s+' INTO ##A from tb group by 学生' )
SELECT * FROM ##A
dusttosky 2011-11-04
  • 打赏
  • 举报
回复
提示 :对象名 '#a' 无效。



declare @s nvarchar(4000)
set @s=''
Select @s=@s+','+quotename(khr)+'=sum(case when khr='+quotename(khr,'''')+' then khfs else 0 end)'
from (select distinct khr from akhin)t
insert into #a exec('select bkhr'+@s+' from akhin group by bkhr')
--小F-- 2011-11-04
  • 打赏
  • 举报
回复
insert into #a exec ('select 学生'+@s+' from tb group by 学生')

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧