if( a, b, c)
a的值為true,則返回值為 b
a的值為false,則返回值為 c
如下:
select if(true,1,2);
-> 1
select if(false,1,2);
-> 2
select if(strcmp("123","234"),"不相等","相等");
-> 不相等
舉個例子:
查詢出年齡大於18的學生,如果是男生的話,就要標註為棟樑,否則是未成年
select *,if(***='man','棟樑','未成年') as student_ can_be from class_1 where age>18
ifnull( a, b)
判斷第乙個引數a是否為null:
如果a不為空,直接返回a;
如果a為空,返回第二個引數b
select ifnull(null,"11");
-> 11
select ifnull("00","11");
-> 00
nullif(a,b):如果兩個引數相等則返回null,否則返回第乙個引數的值a
mysql> select nullif(1,1),nullif(123,234);
+-------------+-----------------+
| nullif(1,1) | nullif(123,234) |
+-------------+-----------------+
| null | 123 |
+-------------+-----------------+
1)****** case的語法結構:
case value
when [compare_value] then result
[when [compare_value] then result ...]
[else result] end
語義:
將case後面的值value分別和每個when子句後面的值compare_value進行相等比較:
1,如果一旦和某個when子句後面的值相等則返回相應的then子句後面的值result;
2,如果和所有when子句後面的值都不相等,則返回else子句後面的值;
3,如果沒有else部分則返回null。
注意:
①value可以是字面量、表示式或者列名
②case表示式的資料型別取決於跟在then或else後面的表示式的型別
型別必須相同(可嘗試做隱式型別轉換),否則出錯
mysql> select userid,case salary
-> when 1000 then 'low'
-> when 2000 then 'med'
-> when 3000 then 'high'
-> else '無效值' end salary_grade
-> from salary_tab;
+--------+--------------+
| userid | salary_grade |
+--------+--------------+
| 1 | low |
| 2 | med |
| 3 | high |
| 4 | 無效值 |
| 5 | low |
+--------+--------------+
2)searched case的語法結構:
case
when [condition] then result
[when [condition] then result ...]
[else result] end
語義:
1,如果某個when子句後面的條件condition為true,則返回相應的when子句後面的值result;
2,如果所有的when子句後面的條件condition都不為true,則返回else子句後面的值;
3,如果沒有else部分則返回null。
mysql> select userid,case
-> when salary<=1000 then 'low'
-> when salary=2000 then 'med'
-> when salary>=3000 then 'high'
-> else '無效值' end salary_grade
-> from salary_tab;
+--------+--------------+
| userid | salary_grade |
+--------+--------------+
| 1 | low |
| 2 | med |
| 3 | high |
| 4 | 無效值 |
| 5 | low |
+--------+--------------+
mysql中的if條件語句用法
if expr1,expr2,expr3 如果 expr1 是true expr1 0 and expr1 null 則 if 的返回值為 expr2 否則返回值則為 expr3 if 的返回值為數字值或字串值,具體情況視其所在語境而定。mysql select if 1 2,2,3 3 mysql...
SQL中的條件語句WHEN THEN ELSE
本篇文章講述sql條件語句when then else語句,以供參考,如有錯誤或不當之處還望大神們告知。注意 在mysql中對應判斷表示式的語句是when then else語句,本篇文章將介紹的是範圍條件查詢 when then else語句 和多值等值查詢 decode語句 使用者表t user...
SQL中case when語句的用法
個人學習筆記,歡迎指導!用法 1 case 欄位名 when 字段值 then 值1 else 值2 end 這一種是之前比較常用的一種方式,相當於是大部分程式語言中的switch case的用法,通過欄位名,去匹配字段值,適合字段值比較固定的情況下使用,特點是比較簡潔易用。示例一 and stat...