mysql中的case when有兩種寫法:
簡單函式
case [col_name] when [value1] then [result1]…else [default] end
搜尋函式
case when [expr] then [result1]…else [default] end
針對乙個欄位來進行列舉,把可能的值的定義結果來重新放到一列,下面user_group表
idname1張三
2李四3王五
4朱六
select `name`, case name
when '張三' then
'第一組'
when '李四' then
'第二組'
else
'第三組'
end 'group' from user_group;
得到的結果如下表
name
group
張三第一組
李四第二組
王五第三組
朱六第三組
case語句允許在when下根據判斷語句,在結果內對值進行替換,下面user_age表
idname
age1
名字13
2名字2163
名字321
4名字4295
名字531
6名字6567
名字763
select `name`,age,case
when age<18 then
'少年'
when age>=18 and age<30 then
'青年'
when age>=30 and age<50 then
'中年'
else
'老年'
end stage from user_age;
結果:
name
agestage
名字13
少年名字2
16少年
名字321
青年名字4
29青年
名字531
中年名字6
56老年
名字763
老年除了進行基礎的判斷用法外,他還可以用作行轉列操作。按照上面得到的結果來插入到乙個user_stage表中,現在有個需求,把stage中的每個階段當做乙個單獨的字段來進行統計每個階段的人數。
select
sum(case stage
when '少年' then
1 else
0end) '少年',
sum(case stage
when '青年' then
1 else
0end) '青年',
sum(case stage
when '中年' then
1 else
0end) '中年',
sum(case stage
when '老年' then
1 else
0end) '老年'
from user_stage
其實這個方法並不好,有更簡單的方法實現,但是在這裡只做演示,結果:
少年青年
中年老年22
12
MySQL 之 CASE WHEN 的使用方法
case具有兩種格式。簡單case函式和case搜尋函式。簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 then 女 else 其他 end 這兩種方式,可以實現相同的...
mysql中case when的用法
設計資料庫的時候總會把使用者的性別用int儲存 0 為女,1 為男 但是怎麼把它抓換成漢子顯示呢?姓名 case when 0then 女 else 男 end as 性別 from test.student 最後的end要記得寫,查詢結果 按照使用者成績顯示優 90分以上 良 80分 90分 及格...
oracle之 case when 的用法
oracle case when的用法 select col1,col2,case when col3 1 and col3 2 then 1 when col3 2 and col3 3 then 2 when col3 3 and col3 4 then 3 else 4 end mylevel...