复杂的SQL插入语句,该怎样实现?
我需要实现的就是把一个表里的值插入另一个表,但是与一般的插入不同!
表1的结构如下:
a 字段名称
a1 值
a2 值
a3 值
表2的结构如下:
item1 item2 item3 ... item50 字段名称 一共有50个字段名称
我想实现插入后的结果是这样的
item1 item2 item3 ... item50 字段名称
a1 a2 a3 值
也就是说,把a1,a2,a3插入到一列中,其中a1,a2,a3可能相同,也可能不同!
在表2 中之所以有50个字段名称,因为有时候得到的a字段的值不一样多,但最终不会超过50个!
这样的一条SQL语句该如何写?
------解决方案--------------------insert into 表1
select item1 , 字段名称 from 表2 union all
select item2 , 字段名称 from 表2 union all
........
select item50 , 字段名称 from 表2
------解决方案-------------------- 'a1直 ', 'a2直 ', 'a3直 ', 'a4直 ', 'a5直 '
再对这串处理,然后 ' '中间的数目够50X
TMD想的好复杂...
对了 csdn帮助不能用N天了.怎么搞的TMD
------解决方案--------------------create table aaag (a varchar(10))
insert aaag select 'aa '
insert aaag select 'bb '
insert aaag select 'cc '
create table bbbg(item1 varchar(10),item2 varchar(10),item3 varchar(10),item4 varchar(10),item5 varchar(10))
declare @s varchar(1000)
declare @r varchar(1000)
declare @i int,@Cou int
set @i=1
set @s= ' '
set @r= ' '
select @r=@r+char(39)+a+ ' ' ', ' from aaag
select @r= '( '+left(@r,len(@r)-1)+ ') '
select @Cou=count(1) from aaag
while @i <@cou+1
begin
set @s=@s+ 'item '+ltrim(@i)+ ', '
set @i=@i+1
end
select @s= 'insert bbbg ( '+left(@s,len(@s)-1)+ ')values '+@r
exec(@s)
select * from bbbg