求一超级难SQL语句
需求:有2个表,2个表由关键字可以关联。
根据表一中有几条记录,在表二中相应地增加多少列,表二的其他列不变。
注:表一中没有1、2、3、...的序列号
***************************************************************************
create table t (列0 int,列1 int,列2 varchar(10),列3 varchar(10))
insert into t values(101,1, 'A ', 'X ')
insert into t values(101,2, 'B ', 'Y ')
insert into t values(101,3, 'C ', 'Z ')
go
declare @sql varchar(8000)
set @sql = 'select 列0 '
select @sql = @sql + ' ,max(case 列1 when ' ' ' + cast(列1 as varchar) + ' ' ' then 列2 end) [列2_ ' + cast(列1 as varchar) + '] '
+ ' ,max(case 列1 when ' ' ' + cast(列1 as varchar) + ' ' ' then 列3 end) [列3_ ' + cast(列1 as varchar) + '] '
from (select distinct 列1 from t ) as a
set @sql = @sql + ' from t group by 列0 '
exec(@sql)
drop table t
/*
列0 列2_1 列3_1 列2_2 列3_2 列2_3 列3_3
----------- ---------- ---------- ---------- ---------- ---------- ----------
101 A X B Y C Z
*/
***************************************************************************
难为情啊,没有研究透!
原需求:存在2个表,其中
表一:
列1 列2 列3
101 A X
101 B Y
101 C Z
102 D O
103 E P
... .. ..
表二:
列1 列2 列3
101 甲 ..
102 乙