MYSQL中判断函数有哪些
新建一張客戶表,如下:sex:1-男,2-女,3-未知;level是客戶的級別:1-超級VIP客戶,2-VIP客戶,3-普通客戶
方式一:case函數(shù):流程控制函數(shù)
用法一:
CASE expression WHEN value1 THEN returnvalue1 WHEN value2 THEN returnvalue2 WHEN value3 THEN returnvalue3 …… ELSE defaultreturnvalue END
例子:
SELECT
t.NAME,
(
CASE t.sex
WHEN 1 THEN
'男'
WHEN 2 THEN
'女'
ELSE
'未知'
END
) 性別
FROM
t_customer t
結(jié)果:
用法二:
CASE WHEN condition1 THEN returnvalue1 WHEN condition 2 THEN returnvalue2 WHEN condition 3 THEN returnvalue3 …… ELSE defaultreturnvalue END
例子:
SELECT
t.NAME,
(
CASE
WHEN t.sex=1 THEN
'男'
WHEN t.sex=2 THEN
'女'
ELSE
'未知'
END
) 性別
FROM
t_customer t
方式二:IF()函數(shù)
使用CASE函數(shù)可以實(shí)現(xiàn)非常復(fù)雜的邏輯判斷,可是若只是實(shí)現(xiàn)“如果符合條件則返回A,否則返回B”這樣簡單的判斷邏輯的話,使用CASE函數(shù)就過于繁瑣。MYSQL提供了IF()函數(shù)用于簡化這種邏輯判斷,其語法格式如下:IF(expr1,expr2,expr3)
如果 expr1 為真(expr1 <> 0 以及 expr1 <> NULL),那么 IF() 返回 expr2,否則返回expr3。IF()返回一個(gè)數(shù)字或字符串,這取決于它被使用的語境。
例子:
select t.name,if(t.weight<80,'正常','肥胖') 體重 from t_customer t
感覺這個(gè)作用和oracle 的nvl函數(shù)類似
mysql還有一個(gè)IFNULL(value1,value2)函數(shù),這個(gè)函數(shù)一般用來替換 NULL 值的,我們知道 NULL 值是不能參與數(shù)值運(yùn)算的,比如把emp員工表的員工的提成給加100,可以這么干:
update emp set comm = IFNULL(comm,0)+100,這樣就把提成comm為null的替換成了0,從而不會(huì)出現(xiàn)null+100=null。
方式三:字符串的集合操作ELT()
ELT(N,str1,str2,str3,...)
如果 N = 1,返回 str1,如果N = 2,返回 str2,等等。如果 N 小于 1 或大于參數(shù)的數(shù)量,返回 NULL。
例子:
SELECT
t. NAME,
ELT(
t. LEVEL,
'超級VIP',
'VIP',
'普通'
) 客戶類型
FROM
t_customer t
總結(jié)
以上是生活随笔為你收集整理的MYSQL中判断函数有哪些的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么程序员要尽量少写代码
- 下一篇: 宁波银行现金易审核要多久?影响因素有这些