行列轉換 普通

2021-04-14 00:28:00 字數 1046 閱讀 7551

/*行列轉換--普通*/

if exists (select * from sysobjects where id=object_id('a') and sysstat & 0xf = 3)

drop table dbo.a

create table dbo.a(

name1     varchar(20) not null,   

subject   varchar(10) null,

result    varchar(3)   null,

) go

insert a (name1,subject,result) values ('張三','語文','80')

insert a (name1,subject,result) values ('張三','數學','90')

insert a (name1,subject,result) values ('張三','物理','85')

insert a (name1,subject,result) values ('李四','語文','85')

insert a (name1,subject,result) values ('李四','數學','92')

insert a (name1,subject,result) values ('李四','物理','82')

select * from a

declare @sql varchar(4000)

set @sql = 'select name1 as 姓名'

select @sql=@sql+',sum(case subject when '''+subject+''' then result else 0 end) as '+subject

from (select distinct subject from a) as cj

select @sql = @sql+' from a group by name1'

print(@sql)

exec(@sql) 

/*win2000 server+sql server 2000 胖子*/

行列轉換 普通

假設有張學生成績表 cj 如下 name subject result 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 數學 92 李四 物理 82 想變成 姓名 語文 數學 物理 張三 80 90 85 李四 85 92 82 declare sql varchar ...

SQL語句之普通行列轉換

假設有張學生成績表 tb rowtocol 如下 name subject result 張三 語文 73 張三 數學 83 張三 物理 93 李四 語文 74 李四 數學 84 李四 物理 94 想變成 姓名 語文 數學 物理 張三 73 83 93 李四 74 84 94 declare sql...

mysql行列轉換 mysql行列轉換

1.一維轉二維 上圖為成績表中資料,現希望將資料轉換為下圖。靜態 轉化為二維表後的列名及列數是確定不變的,本例中即course只有數學 語文 英語這三門課。select s name,max if course 數學 score,0 as 數學,max if course 語文 score,0 as...