SQL2005中行轉列

2021-05-23 07:30:31 字數 975 閱讀 3662

sql2005中有函式可以直接將行轉列,這樣行轉列就好做多了。但是數值列和文字列稍有不同。

1、文字列示例

create table tb(姓名 varchar(10) , 課程 varchar(10) , 分數 int)

insert into tb values('張三' , '語文' , 74)

insert into tb values('張三' , '數學' , 83)

insert into tb values('張三' , '物理' , 93)

insert into tb values('李四' , '語文' , 74)

insert into tb values('李四' , '數學' , 84)

insert into tb values('李四' , '物理' , 94)

goselect * from tb

select * from (select * from tb) a pivot (max(分數) for 課程 in (語文,數學,物理)) b

2、數值列示例

create table tb(姓名 varchar(10) , 課程 varchar(10) , 分數 int)

insert into tb values('張三' , 1 , 74)

insert into tb values('張三' , 2 , 83)

insert into tb values('張三' , 3 , 93)

insert into tb values('李四' , 1 , 74)

insert into tb values('李四' , 2 , 84)

insert into tb values('李四' , 3 , 94)

goselect * from tb

select * from (select * from tb) a pivot (max(分數) for 課程 in ([1],[2],[3])) b

SQL2005 行轉列 列轉行

在做報表時,經常需要將資料表中的行轉列,或者列轉行,如果不知道方法,你會覺得通過sql語句來實現非常難。這裡,我將使用pivot和unpivot來實現看似複雜的功能。這個功能在sql2005及以上版本才有。引用msdn 可以使用 pivot 和 unpivot 關係運算子將表值表示式更改為另乙個表。...

SQL2000和SQL2005的行轉列處理方法

select show id year n1 n2 n3 n4 n5 from datapass db dbo test 1 sql2005中的列轉行.select show id mon,subtotal from datapass db dbo test unpivot subtotal for...

SQL2000和SQL2005的行轉列處理方法

sql2000和sql2005的行轉列處理方法 2007 10 26 09 24 原表結構 select show id year n1 n2 n3 n4 n5 from datapass db dbo test 1 sql2005中的列轉行.select show id mon,subtotal ...