MYSQL-流程控制函数

IF(expr1,expr2,expr3)

  • expr1 为0或者null或者false,则返回 expr3 ; 否则,返回expr2
SELECT
	last_name,
	salary,

IF (
	salary > 10000,
	'高工资',
	'低工资'
) AS 工资水平
FROM
	employees;
/*
King	24000	高工资
Kochhar	17000	高工资
De Haan	17000	高工资
Hunold	9000	低工资
Ernst	6000	低工资
*/

SELECT IF(0,1,2);# 2
SELECT IF(NULL,'refine','lily'); # lily
SELECT IF(FALSE,'refine','lily'); # lily
SELECT IF(2>1,'refine','lily');# refine

IFNULL(expr1,expr2)

  • 如果expr1 不是NULL,则返回第一个expr1 ,否则返回expr2;
# 如果commission_pct为NULL,则将commission_pct赋为0
SELECT last_name,commission_pct,IFNULL(commission_pct,0) FROM employees;
/*
King	NULL	0	
Kochhar	NULL	0	
De Haan	NULL	0
Hunold	NULL	0
...
*/

CASE WHEN … THEN …WHEN … THEN … ELSE … END

SELECT
	last_name,
	salary,
	CASE
WHEN salary >= 20000 THEN
	'精英'
WHEN salary >= 10000 THEN
	'白领'
WHEN salary >= 6000 THEN
	'工薪'
ELSE
	'贫民'
END
FROM
	employees;
/*
King	24000	精英
Kochhar	17000	白领
De Haan	17000	白领
*/

CASE … WHEN … THEN … WHEN … THEN … ELSE … END

SELECT
	employee_id,
	last_name,
	job_id,
	salary,
	CASE job_id
WHEN 'IT_PROG' THEN
	salary + 5000
WHEN 'PU_CLERK' THEN
	salary + 3000
WHEN 'ST_MAN' THEN
	salary + 2000
ELSE
	salary
END "details"
FROM
	employees;
/*
100	King	AD_PRES	24000	24000.00
101	Kochhar	AD_VP	17000	17000.00
102	De Haan	AD_VP	17000	17000.00
103	Hunold	IT_PROG	9000	14000.00
104	Ernst	IT_PROG	6000	11000.00
105	Austin	IT_PROG	4800	9800.00
...
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅尝酥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值