行列轉換等經典SQL語句

2021-05-05 12:09:55 字數 850 閱讀 4746

在企業應用中,經常會開發報表系統,而在報表中又經常用到行列轉換,這裡有乙個經典的應用例項:

原表:  

姓名    科目   成績

張三     語文    80

張三     數學    90

張三     物理    85

李四     語文    85

李四     物理    82

李四     英語    90

李四     政治    70

王五     英語    90

轉換後的表: 

姓名     數學    物理     英語    語文    政治

李四        0       82        90      85       70

王五        0       0         90      0         0

張三        90      85        0       80        0

例項:declare @sql varchar(8000)

set @sql = 'select name as 姓名'

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

from (select distinct subject from cj) as cj  --把所有唯一的科目的名稱都列舉出來

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

exec (@sql)

行列轉換等經典SQL語句

在企業應用中,經常會開發報表系統,而在報表中又經常用到行列轉換,這裡有乙個經典的應用例項 原表 姓名 科目 成績 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 物理 82 李四 英語 90 李四 政治 70 王五 英語 90 轉換後的表 姓名 數學 物理 英語 語文 ...

行列轉換等經典SQL語句

在企業應用中,經常會開發報表系統,而在報表中又經常用到行列轉換,這裡有乙個經典的應用例項 原表 姓名 科目 成績 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 物理 82 李四 英語 90 李四 政治 70 王五 英語 90 轉換後的表 姓名 數學 物理 英語 語文 ...

經典SQL 行列轉換

姓名科目 成績張三 語文66 張三數學 77張三 英語88 李四語文 99李四 數學100 李四英語 55王五 語文44 王五數學 33馬六 英語22 馬六語文 11姓名 語文數學 英語張三 6677 88李四 99100 55王五 44330馬六 11022select name,sum case...