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

sql 横竖变化 求救
NUM	NAME	X	Y
7   张三 1 1
61  李四 1 2
104 王五 1 3
80  赵六 2 1
70  刘七 2 2
70  吴八 2 3

将上面数据排列为

7张三   61李四   104王五
80赵六  70刘七   60吴八


x,y其实可以看成是坐标,排列出表格,谢过各位大神!

下面是建表的代码方便各位
create table [TESTTABLE] (NUM nvarchar(50),NAME varchar(50),X int,Y int)
insert into [TESTTABLE] values('7','张三',1,1) 
insert into [TESTTABLE] values('61','李四',1,2) 
insert into [TESTTABLE] values('104','王五',1,3) 
insert into [TESTTABLE] values('80','赵六', 2,1)  
insert into [TESTTABLE] values('70','刘七', 2,2)  
insert into [TESTTABLE] values('70','吴八',2,3)  
SQL 横竖变化

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

--刚刚发错了

select X,
max(case when Y=1 then NUM+NAME else '' end),
max(case when Y=2 then NUM+NAME else '' end),
max(case when Y=3 then NUM+NAME else '' end)
from [TESTTABLE] 
group by X 
X                                                                                                                                                                                                                     
----------- ---------------------------------------------------------------- ---------------------------------------------------------------- ----------------------------------------------------------------
1           7张三                                                                    &nbs