一、CASE when 使用案例
1、业务需求
1. 前端
数据库表中存放的数据为数字,但是前端展示的时候需要转换为汉字的描述,为此需要先将后台的数据查询出来返回到前端,在前端进行转换,这个方法适用于比较固定的转换,比如在表中:1代表什么,2代表什么,完全固定的,如下:
因为前端我是用的是 GridManager 表格插件,所以在前端GridManager 表格模板中找到这样的转换拿方法,如下:
2. 后端
日志表:CUSTOMER_SYS_LOG
用户表:ISC_USER
在日志表中的 CREATE_USER 字段存放有两种类型的值,一种是存在了 超管 的汉子名称,另一种是存放了操作用户的 id;在操作日志界面我需要展示所有的日志信息,但是日志信息中存放的 CREATE_USER 字段中的数据是id,展示的时候需要改为该id所对应的操作人姓名,需要操作用户表,具体操作如下:SQL
使用CASE xxx WHEN xxx end 别名
SELECT
c.OPERATION_FUNCTION ,
c.BATH as bath,
c.OPERATION_TYPE ,
c.OPERATION_TABLE ,
c.OPERATION_DATA,
c.REMARK,
c.CREATE_TIME ,
CASE
WHEN C.CREATE_USER = ‘超管’ THEN
‘超管’ ELSE u.NAME
END CREATE_USER
FROM
sgwpdm.customer_sys_log c,
sgwpdm.ISC_USER u
WHERE
c.CREATE_USER = u.id ( + )
AND BATH = #{bath}
and OPERATION_FUNCTION = ‘1’
后端case when 的原始是用如下:
参考地址:https://www.cnblogs.com/aipan/p/7770611.html
个人笔记;个人笔记;个人笔记;个人笔记;