行列轉換 1

2021-09-05 16:45:24 字數 502 閱讀 8819

假設有張學生成績表(cj)如下

name subject result

張三 語文 80

張三 數學 90

張三 物理 85

李四 語文 85

李四 數學 92

李四 物理 82

想變成

姓名 語文 數學 物理

張三 80 90 85

李四 85 92 82

declare @sql varchar(4000)

set @sql = 'select name'

select @sql = @sql + ',sum(case subject when '''+subject+''' then result end) ['+subject+']'

from (select distinct subject from cj) as a

select @sql = @sql+' from test group by name'

exec(@sql)

SQL Server 行列轉換 1

參考前乙個sql的行列轉換例子 覺得不夠自由,需要去預先知道記錄的內容去定義行或列。下面這個方法,是insus.net常用一種處理方案,為資料量較少而準備。比較長,基本上寫有說明,理解起來,一般不會有多大困難。如下 view code 由於原記錄表沒有乙個唯一主鍵,只好新建乙個臨時表,把需要處理的記...

mysql行列轉換 mysql行列轉換

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

mysql行列轉換例子 mysql行列轉換示例

現把轉換方法列舉如下 1 縱表轉橫表 縱表結構 tablea name course grade 張三語文 張三數學 張三英語 李四語文 李四數學 橫表結構 tableb name 語文數學 英語張三 李四方法一 select name,sum case course when 語文 then gr...