SQL之case when
阿新 • • 發佈:2018-03-02
參考 技術分享 搜索 fec country nbsp lec center then
現在要統計各大洲包含的人數,可利用如下語句實現:
大致學習了下SQL的功能語句,case when 類似於c語言中的switich case語句,多分支選擇,不同的值可以有不同的返回量。比如,在一個包含了sex字段的表中,可能的值為1、2,執行完下屬語句後,值為1的地方返回 男,值為2的地方返回 女。
--簡單Case函數 CASE sex WHEN ‘1‘ THEN ‘男‘ WHEN ‘2‘ THEN ‘女‘ ELSE ‘其他‘ END --Case搜索函數 CASE WHEN sex = ‘1‘ THEN ‘男‘ WHEN sex = ‘2‘ THEN ‘女‘ ELSE ‘其他‘ END
同時,case語句有兩種實現方式。有如下表格:
國家(country) | 人口(population) |
中國 | 600 |
美國 | 100 |
加拿大 | 100 |
英國 | 200 |
法國 | 300 |
日本 | 250 |
德國 | 200 |
墨西哥 | 50 |
印度 | 250 |
SELECT SUM(population), CASE country WHEN ‘中國‘ THEN ‘亞洲‘ WHEN ‘印度‘ THEN ‘亞洲‘ WHEN ‘日本‘ THEN ‘亞洲‘ WHEN ‘美國‘ THEN ‘北美洲‘ WHEN ‘加拿大‘ THEN ‘北美洲‘ WHEN ‘墨西哥‘ THEN ‘北美洲‘ ELSE ‘其他‘ END FROM Table_A GROUP BY CASE country WHEN ‘中國‘ THEN ‘亞洲‘ WHEN ‘印度‘ THEN ‘亞洲‘ WHEN ‘日本‘ THEN ‘亞洲‘ WHEN ‘美國‘ THEN ‘北美洲‘ WHEN ‘加拿大‘ THEN ‘北美洲‘ WHEN ‘墨西哥‘ THEN ‘北美洲‘ ELSE ‘其他‘ END;
在sqliteman中對sqlite數據表格的測試代碼及結果如下所示:
同樣,還可以用該方法判別各大洲國家的個數,代碼及結果如下:
此處,sum(perosn)對各大洲國家所對應的人數值進行求和,返回數值列的總數(總額);count(perosn)對各大洲的國家數進行統計,返回匹配指定條件的行數。
以上資料部分參考自:https://www.cnblogs.com/prefect/p/5746624.html
SQL之case when