日期:2014-05-17  浏览次数:20701 次

请教一下 SQL 的语句的写法。
我有两个表

表1

CLBH CLLX CLMC CLDW CLGG       ....(当然,不止这些字段
A0001 双粉 128金东 R 1194*787
A0002 哑粉 128金东 R 1194*787
A0003 双粉 128金东 R 1194*787


create table #temp1(
  CLBH varchar(10),
  CLLX varchar(10),
  CLMC varchar(10),
  CLDW varchar(10),
  CLGG varchar(10)
)

insert into #temp1
select 'A0001','双粉','128金东','R','1194*787' union all
select 'A0002','哑粉','128金东','R','1194*787' union all
select 'A0003','双粉','128金东','R','1194*787' 



表2:
CLBH XMMC FValue
A0001 CLLX
A0001 CLMC
A0001 CLDW
A0001 CLGG
A0002 CLLX
A0002 CLMC
A0002 CLDW
A0002 CLGG
A0003 CLLX
A0003 CLMC
A0003 CLDW
A0003 CLGG



create table #temp2(
  CLBH varchar(10),
  XMMC varchar(10),
  FValue varchar(10)
)

insert into #temp2
select 'A0001','CLLX','' UNION ALL
select 'A0001','CLMC','' UNION ALL
select 'A0001','CLDW','' UNION ALL
select 'A0001','CLGG','' UNION ALL

select 'A0002','CLLX','' UNION ALL
select 'A0002','CLMC','' UNION ALL
select 'A0002','CLDW','' UNION ALL
select 'A0002','CLGG','' UNION ALL

select 'A0003','CLLX','' UNION ALL
select 'A0003','CLMC','' UNION ALL
select 'A0003','CLDW','' UNION ALL
select 'A0003','CLGG','' 





将 表2 有对应项目(与表1的字段名对应)的值填入表2中。

得到的结果:


CLBH XMMC FVALUE
A0001 CLLX 双粉
A0001 CLMC 128金东
A0001 CLDW R
A0001 CLGG 1194*787
A0002 CLLX  哑粉
A0002 CLMC 128金东
A0002 CLDW R
A0002 CLGG 1194*787
A0003 CLLX  双粉
A0003 CLMC 128金东
A0003 CLDW R
A0003 CLGG 1194*787


----------------------

有什么方法可以解决这个问题吗?

如果类似


INSERT INTO 表3 (CLBH,XMMC,FVALUE)
select CLBH,XMMC=‘CLLX’,FVALUE=CLLX
 from #TEMP1
INSERT INTO 表3 (CLBH,XMMC,FVALUE)
select CLBH,XMMC=‘CLMC’,FVALUE=CLMC
 from #TEMP1

......



这样的代码,也就没有什么意义了。
SQL select

------解决方案--------------------

create table temp1(
  CLBH varchar(10),
  CLLX varchar(10),
  CLMC varchar(10),
  CLDW varchar(10),
  CLGG varchar(10)
)
 
insert into temp1
select 'A0001','双粉','128金东','R','1194*787' union all
select 'A0002','哑粉','128金东','R','1194*787' union all
select 'A0003','双粉','128金东','R','1194*787' 

declare @sql