sql 横竖变化 求救
NUMNAMEXY
7 张三11
61 李四12
104王五13
80 赵六21
70 刘七22
70 吴八23
将上面数据排列为
7张三 61李四 104王五
80赵六 70刘七 60吴八
x,y其实可以看成是坐标,排列出表格,谢过各位大神!
下面是建表的代码方便各位
create table [TESTTABLE] (NUM nvarchar(50),NAME varchar(50),X int,Y int)SQL 横竖变化
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)
[解决办法]
--刚刚发错了
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张三 61李四 104王五
2 80赵六 70刘七 70吴八
(2 行受影响)
[解决办法]
create table [TESTTABLE](NUM nvarchar(5),NAME varchar(10),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)
select NUM,NAME,X,Y from [TESTTABLE]
/*
NUM NAME X Y
----- ---------- ----------- -----------
7 张三 1 1
61 李四 1 2
104 王五 1 3
80 赵六 2 1
70 刘七 2 2
70 吴八 2 3
(6 row(s) affected)
*/
select [1],[2],[3]
from (select NUM+NAME 'NN',X,Y from [TESTTABLE]) a
pivot(max(NN) for Y in([1],[2],[3])) p
/*
1 2 3
--------------- --------------- ---------------
7张三 61李四 104王五
80赵六 70刘七 70吴八
(2 row(s) affected)
*/