第一種 : 行列互換思想,外層group by,使用case when then
我有乙個表,有兩個字段:收費專案(唯一值),收費金額。
我想用sql按收費專案不同生成不同的字段,對應值是金額。如:
房租 100
水電費 50
雜費 50
生成後的格式是:
房租 水電費 雜費
100 50 50
請問,如何寫這個sql語句?
select sum(case when 收費專案= '房租 ' then 收費金額 else 0 end) as 房租,
sum(case when 收費專案= '水電費 ' then 收費金額 else 0 end) as 水電費,
sum(case when 收費專案= '雜費 ' then 收費金額 else 0 end) as 雜費
from 表
問題:假設有張學生成績表(tb)如下:
姓名 課程 分數
張三 語文 74
張三 數學 83
張三 物理 93
李四 語文 74
李四 數學 84
李四 物理 94
想變成(得到如下結果):
姓名 語文 數學 物理
李四 74 84 94
張三 74 83 93
select 姓名 as 姓名 ,
max(case 課程 when '語文' then 分數 else 0 end) 語文,
max(case 課程 when '數學' then 分數 else 0 end) 數學,
max(case 課程 when '物理' then 分數 else 0 end) 物理
from tb
group by 姓名
sql常用語句
use myoa select from delete from department where departmentid 1 insert department departmentid,departmentname values 1,技術部 update department set depa...
sql常用語句
在sqlserver,簡單的組合sp spaceused和sp msforeachtable這兩個儲存過程,可以方便的統計出使用者 資料表的大小,包括記錄總數和空間占用情況,非常實用,在sqlserver2k和sqlserver2005中都測試通過。1.exec sp spaceused 表名 sq...
SQL常用語句
建立資料庫 create database name 檢視資料庫建立資訊 show create database name 建立資料庫排序規則 create database name character utf8 collate mou 刪除資料庫 drop database name 檢視當前...