首页 > 其他 > 详细

case用法

时间:2021-01-22 19:20:26      阅读:28      评论:0      收藏:0      [点我收藏+]

SELECT
id,
service_id,
order_sn,
yuyue_date,
yuyue_time,
(
CASE
WHEN ( yuyue_date != ‘‘ && yuyue_time != ‘‘ ) THEN
UNIX_TIMESTAMP( CONCAT( yuyue_date, ‘ ‘, yuyue_time ) )
WHEN ( yuyue_date = ‘‘ && yuyue_time != ‘‘ ) THEN
addtime
WHEN ( yuyue_date = ‘‘ && yuyue_time = ‘‘ ) THEN
0
END
) AS yuyue_finnal
FROM
`order_info`
WHERE
token = ‘7673d6eb1ec6122c‘
AND uid = 5789729
AND (
CASE
WHEN ( yuyue_date != ‘‘ && yuyue_time != ‘‘ ) THEN
UNIX_TIMESTAMP( CONCAT( yuyue_date, ‘ ‘, yuyue_time ) )
WHEN ( yuyue_date = ‘‘ && yuyue_time != ‘‘ ) THEN
addtime
WHEN ( yuyue_date = ‘‘ && yuyue_time = ‘‘ ) THEN
0
END
) BETWEEN 1611072000
AND 1611504000

 

 

 

 

 

--------------------------------------------------------------

 

 

SELECT
sum(case when x.have_renew = 1 then 1 else 0 end) AS 未续费未到期,
sum(case when x.have_renew = 2 then 1 else 0 end) AS 已续费未到期,
sum(case when x.have_renew = 3 then 1 else 0 end) AS 曾经续费已到期,
sum(case when x.have_renew = 4 then 1 else 0 end) AS 未续费已到期
FROM
(SELECT
MAX(end_time) AS end_time,

CASE
WHEN (COUNT(id) > 1 && MAX(end_time) > 1608277794) THEN 1
WHEN (COUNT(id) = 1 && MAX(end_time) > 1608277794) THEN 2
WHEN (COUNT(id) > 1 && MAX(end_time) < 1608277794) THEN 3
WHEN (COUNT(id) = 1 && MAX(end_time) < 1608277794) THEN 4
END
AS have_renew
FROM
addons_pay
WHERE
module = ‘Shop‘
AND pay_type != 3
GROUP BY
public_id) as x

case用法

原文:https://www.cnblogs.com/wangshuazi/p/14314059.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!