Mysql 中的case-when詳解
什么是 case-when
case-when 是一種 sql 語句中的語法結(jié)構(gòu),結(jié)構(gòu)如下:
case 字段名
when 值 then 字段名|值
...
else 字段名|值 end
case when 主要用于數(shù)據(jù)的 行列轉(zhuǎn)換(把一列數(shù)據(jù)轉(zhuǎn)換為多列)
前置條件:
-- 表結(jié)構(gòu)如下:
create table demo2 ( country varchar(20),-- 國家 sex int,-- 性別,男=1,女=2 pop int-- 人口數(shù)量 );
-- 表數(shù)據(jù)如下:
insert into demo2 values('中國',1,340); insert into demo2 values('中國',2,240); insert into demo2 values('美國',1,45); insert into demo2 values('美國',2,55); insert into demo2 values('加拿大',1,40); insert into demo2 values('加拿大',2,65); insert into demo2 values('英國',1,34); insert into demo2 values('英國',2,60); commit;
編寫查詢實現(xiàn)如下效果:
效果1:
答案1:
SELECT d.country , SUM(CASE d.sex WHEN 1 THEN d.pop ELSE 0 END) AS man , SUM(CASE d.sex WHEN 2 THEN d.pop ELSE 0 END) AS woman FROM demo2 d GROUP BY d.country ;
效果2:
答案2:
SELECT CASE d.country WHEN '中國' THEN '亞洲' WHEN '英國' THEN '歐洲' ELSE '美洲' END AS 洲 , SUM(d.pop) FROM demo2 d GROUP BY ( CASE d.country WHEN '中國' THEN '亞洲' WHEN '英國' THEN '歐洲' ELSE '美洲' END ) ;
到此這篇關(guān)于Mysql 中的case-when的文章就介紹到這了,更多相關(guān)Mysql case-when內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL Server 2005 安裝遇到的錯誤提示和解決方法
在安裝SQL Server 2005時有時會出現(xiàn)意想不到的問題,如IIS,性能計數(shù)器,OWC11,無法配置外圍應(yīng)用的問題,下面筆者分享一下在安裝SQL Server 2005時常見問題解決方法2014-01-01SQL中CAST()實例之轉(zhuǎn)換數(shù)據(jù)類型
CAST函數(shù)用于將某種數(shù)據(jù)類型的表達式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于SQL中CAST()實例之轉(zhuǎn)換數(shù)據(jù)類型的相關(guān)資料,需要的朋友可以參考下2023-01-01阿里云 Centos7.3安裝mysql5.7.18 rpm安裝教程
這篇文章主要介紹了阿里云 Centos7.3安裝mysql5.7.18 rpm安裝教程,需要的朋友可以參考下2017-06-06

關(guān)于MYSQL 你需要知道的數(shù)據(jù)類型和操作數(shù)據(jù)表