一个selecte 的问题~

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:22:29
create table os(id int,value varchar(50))
insert into os select 1,'01,02'
insert into os select 2,'01,02,03'

declare @sql varchar(8000)
set @sql=''
select @sql=@sql+replace(','+value,',','''[value] union select '+ltrim(id)+'[id],''') from os
set @sql=stuff(@sql,1,14,'')+''''
exec(@sql)
这里查询出来的结果只是一个显示在网格中的结果集,能不能把这些结果直接插入一个表中?
value做了列名 ,说不好 怎么改啊

create table os(id int,value varchar(50))
insert into os select 1,'01,02'
insert into os select 2,'01,02,03'

declare @sql varchar(8000)
set @sql=''
select @sql=@sql+replace(','+value,',','''[value] union select '+ltrim(id)+'[id],''') from os
set @sql=stuff(@sql,1,14,'')+''''
set @sql='select * into os1 from('+@sql+') tb'
exec(@sql)

可以
你可以使用临时表 也可以把查询的结果放入到一个已经存在的表
存入临时表的话 使用
select xxxx into #temp from xx where xxxxxx

如果是存入已经存在的表的话 应该使用
insert tablename values select xxxx from xxxx where xxxxx
不过要注意查询的结果和tablename那个表中的字段要相吻合