Mysql 中的case-when詳解
更新時間:2024年06月09日 11:35:27 作者:cssl-虞老師
case-when? 是一種 sql 語句中的語法結(jié)構(gòu),主要用于數(shù)據(jù)的行列轉(zhuǎn)換,本文給大家介紹Mysql 中的case-when的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
什么是 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)文章
MySQL優(yōu)化配置文件my.ini(discuz論壇)
公司網(wǎng)站訪問量越來越大,MySQL自然成為瓶頸,因此最近我一直在研究 MySQL 的優(yōu)化,第一步自然想到的是 MySQL 系統(tǒng)參數(shù)的優(yōu)化,作為一個訪問量很大的網(wǎng)站(日20萬人次以上)的數(shù)據(jù)庫系統(tǒng),不可能指望 MySQL 默認的系統(tǒng)參數(shù)能夠讓 MySQL運行得非常順暢。2011-03-03
MySQL數(shù)據(jù)庫之數(shù)據(jù)表操作
這篇文章主要介紹了MySQL數(shù)據(jù)庫之數(shù)據(jù)表操作,文章基于MySQL數(shù)據(jù)庫的相關(guān)資料展開詳細的數(shù)據(jù)表操作的詳情,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05
mysql中 ${param}與#{param}使用區(qū)別
這篇文章主要介紹了mysql中 ${param}與#{param}使用區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08

