在程序开发过程中,经常会有一些业务上的需要导出excel数据。
这点不可不说,excel不论什么时候,业务都很青睐。
示例:突然接到业务需求,需要导出一些数据进行核对,格式如下:
这时通过数据库查询,状态的切分显示就需要用到case when 用法了。
示例用法:
SELECT
userweixin.nickname AS 微信昵称,
apply.name AS 联系人,
apply.tel AS 手机号,
site.site_name AS 子站,
apply.address AS 详细地址,
apply.bdid AS 推荐人ID,
FROM_UNIXTIME(apply.dateline) AS 申请时间 ,
(CASE
apply.status
WHEN 0
THEN ‘未沟通’
WHEN 1
THEN ‘已沟通’
END) AS 沟通状态,
(CASE
apply.open_status
WHEN 0
THEN ‘未开通’
WHEN 1
THEN ‘已开通’
WHEN 2
THEN ‘已拒绝’
END) AS 开通状态
FROM
apply AS apply
LEFT JOIN userweixin AS userweixin
ON apply.user_id = userweixin.userid
LEFT JOIN site AS site
ON site.site_id = apply.site_id
WHERE apply.deleted = ‘0’
AND apply.site_id IN (
‘-1’,
‘10311’
)
ORDER BY apply.apply_id DESC
LIMIT 0, 20 ;
通过case when 可以直接判断数据表里的status状态,并显示对应的文字描述。
比较标准的case when用法示例为:
case
when a.status = 1 and a.end_time > UNIX_TIMESTAMP() then 生效中
when a.status = 2 then 已失效
else ‘N/A’
end status_alias
需要注意的是:
case when 用在查询语句的时候,新的别名可以用来排序,但是不能用在where条件当中。
转载请注明:苏demo的别样人生 » mysql case when 用法简记分享