sql常用語句

2021-07-04 00:14:09 字數 1017 閱讀 4983

第一種 : 行列互換思想,外層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 檢視當前...