MySQL中casewhen嵌套的使⽤⽅法
MySQL中有⼀个⽤于判断多种情况的语句,类似于java中的switch…case,在写SQL过程中需要⽤到case when嵌套,在这⾥记录⼀下,以防忘记。
简单例⼦:
SELECT
CASE
WHEN ISNULL(work_order_no)THEN
(CASE WHEN2>1THEN11ELSE22END)
ELSE
(CASE WHEN1>0THEN33ELSE66END)
END
FROM
qk_20030102
WHERE
work_order_no ='GD0000070324'
实际使⽤的例⼦:
SELECT
work_order_no,
CASE--最外层case
WHEN UNIX_TIMESTAMP(--获取时间戳--
STR_TO_DATE(--字符串转⽇期格式--
chuangjian_time,
'%Y-%m-%d %H:%i:%s'
)
)> UNIX_TIMESTAMP(
STR_TO_DATE(
CONCAT(
substring(chuangjian_time,1,10),--字符串截取--"18:00:00"
),
'%Y-%m-%d %H:%i:%s'
)
)
THEN
(
CASE--内层case1
WHEN UNIX_TIMESTAMP(
STR_TO_DATE(
substring(chuangjian_time,1,10),
'%Y-%m-%d %H:%i:%s'
)
)+124200>= UNIX_TIMESTAMP(
STR_TO_DATE(
yuyue_opt_time,
'%Y-%m-%d %H:%i:%s'
)
)THEN
1
ELSE
END
)
ELSE
(
CASE--内层case2
WHEN UNIX_TIMESTAMP(
STR_TO_DATE(
assign_time,
'%Y-%m-%d %H:%i:%s'
)
)+5400>= UNIX_TIMESTAMP(
STR_TO_DATE(
yuyue_opt_time,
'%Y-%m-%d %H:%i:%s'
)
)THEN
switch case判断字符串1
ELSE
END
)
END
FROM
qk_20030102
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论