姓名科目
成績張三
語文66
張三數學
77張三
英語88
李四語文
99李四
數學100
李四英語
55王五
語文44
王五數學
33馬六
英語22
馬六語文
11姓名
語文數學
英語張三
6677
88李四
99100
55王五
44330馬六
11022select name,
sum(case subject when '語文' then result else 0 end) 語文,
sum(case subject when '數學' then result else 0 end) 數學,
sum(case subject when '物理' then result else 0 end) 物理,
sum(case subject when '政治' then result else 0 end) 政治,
sum(case subject when '英語' then result else 0 end) 英語
from cj c
group by name;
select name,
sum(decode(subject, '語文', result, 0)) as 語文,
sum(decode(subject, '數學', result, 0)) as 數學,
sum(decode(subject, '英語', result, 0)) as 英語
from cj group by name
oracle 中 decode 函式用法
oracle decode含**釋:
decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,預設值)
該函式的含義如下:
if 條件=值1 then
return(翻譯值1)
elsif 條件=值2 then
return(翻譯值2)
......
elsif 條件=值n then
return(翻譯值n)
else
return(預設值)
end if
decode(欄位或字段的運算,值1,值2,值3)
這個函式執行的結果是,當字段或字段的運算的值等於值1時,該函式返回值2,否則返回值3
當然值1,值2,值3也可以是表示式,這個函式使得某些sql語句簡單了許多
例如:decode(subject, '語文', result, 0) as 語文
decode(result, 0, 男,1,女,2,人妖, 0) 性別
行列轉換等經典SQL語句
在企業應用中,經常會開發報表系統,而在報表中又經常用到行列轉換,這裡有乙個經典的應用例項 原表 姓名 科目 成績 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 物理 82 李四 英語 90 李四 政治 70 王五 英語 90 轉換後的表 姓名 數學 物理 英語 語文 ...
行列轉換等經典SQL語句
在企業應用中,經常會開發報表系統,而在報表中又經常用到行列轉換,這裡有乙個經典的應用例項 原表 姓名 科目 成績 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 物理 82 李四 英語 90 李四 政治 70 王五 英語 90 轉換後的表 姓名 數學 物理 英語 語文 ...
行列轉換等經典SQL語句
在企業應用中,經常會開發報表系統,而在報表中又經常用到行列轉換,這裡有乙個經典的應用例項 原表 姓名 科目 成績 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 物理 82 李四 英語 90 李四 政治 70 王五 英語 90 轉換後的表 姓名 數學 物理 英語 語文 ...