casewhen condition1 then
result1
when condition2 then
result2
when conditionn then
resultn
else
result
end;
mysql>select
*from
person;+--
--+---------+--------+------+--------+
| id | country | name | age | gender |+--
--+---------+--------+------+--------+|3
| china | tim |10|
1||7
| usa | kobe |10|
1||8
| usa | james |20|
1||9
| usa | grace |30|
0||10
| japan | monica |40|
2|+--
--+---------+--------+------+--------+
mysql>select id, `name`, case gender when
1then'男
'when
0then'女
'else'其他
'end
as gender from
person;+--
--+--------+--------+
| id | name | gender |+--
--+--------+--------+|3
| tim | 男 ||7
| kobe | 男 ||8
| james | 男 ||9
| grace | 女 ||10
| monica | 其他 |+--
--+--------+--------+
根據不同國家統計使用者的性別
mysql>select
country,
->
sum(case
when gender=
1then
1else
0end) as
male,
->
sum( case
when gender=
0then
1else
0end) as
female,
->
sum(case
when gender>
1then
1else
0end) as
unknown
->
from
person
->
group
bycountry;+--
-------+------+--------+---------+
| country | male | female | unknown |+--
-------+------+--------+---------+
| china |1|
0|0|
| japan |0|
0|1|
| usa |2|
1|0|
+---------+------+--------+---------+
簡單case函式
updateperson
set `status` =
case
idwhen
1then
1when
2then
0when
3then
0when
4then
1end
where id in (1, 2, 3, 4)
注意事項:一定要有where id in的限制,否則不在when中的記錄就會被置為null
case搜尋函式
updateperson
set `status` =
case
when id%2=
1then
1when id%2=
0then
0end
區別:簡單case函式只能實現相等條件判斷,case搜尋函式適合複雜條件判斷,比如大於、小於等
mysql case when語句的使用
case具有兩種格式。簡單case函式和case搜尋函式。簡單函式 case col name when value1 then result1 else default end 搜尋函式 case when expr then result1 else default end 簡單函式的運用 ca...
Mysql casewhen的三種用法
case when 的三種用法 1.case 字段 when 欄位的具體值。select a.case name when 流浪 then 法師 else 戰士 end as 型別 from c 20170920 a 2.case when 字段,這個可以對欄位進行取範圍。select a.case...
SwipeRefreshLayout的高度測量
感謝此作者的分享 若swiperefreshlayout的子布局為乙個線性布局linearlayout,紅色背景 黃色背景 黑色背景 顯示結果確實這個樣子的 我們設定100dp顯然沒起到作用 原來是子view被強制設定成了swiperefreshlayout的高度 自此提示 若使用swiperefr...