Spring XML使用CASE WHEN处理SELECT字段

在日常开发中,经常会碰到需要导出的情况。而一些枚举值或者状态一般是定义成整型,这个时候需要对数据进行转换,转换成对应的文本再导出。

在XML中用CASE WHEN来根据不同的查询结果做不同的处理。

比如
xml 复制代码
SELECT
name AS '姓名',
age AS '年龄'
CASE WHEN status = 1 THEN '在学' WHEN status = 2 THEN '休学' ELSE '辍学' END AS '学习状态'
FROM
student

这样,如果学生的状态值是1,则返回在学;如果状态值是2,则返回休学;如果是其他,则返回辍学。和Java开发中的if elseif else 差不多。

根据传入的参数不同做不同的处理。
xml 复制代码
SELECT
name AS '姓名',
age AS '年龄'
CASE WHEN #{kid}= 1 THEN max_score ELSE max_score+50 END AS '总分'
FROM
student 

如果传入的kid等于1,则直接放回总分;如果kid不等于1,则总分要在原来的基础上加50分。

尝试过使用if标签,不过if标签没法在select后面使用,只能在where后面使用。

相关推荐
无名修道院4 分钟前
DVWA 靶场搭建:Windows11(phpstudy 搭建)(步骤 + 截图 + 常见问题)
数据库·网络安全·渗透测试·靶场·php·dvwa·phpstudy
Dwzun2 小时前
基于SpringBoot+Vue的二手书籍交易平台系统【附源码+文档+部署视频+讲解)
java·vue.js·spring boot·后端·spring·计算机毕业设计
CodeAmaz2 小时前
MySQL 事务隔离级别详解
数据库·mysql·事务隔离级别
千寻技术帮2 小时前
10398_基于SSM的教学评价管理系统
数据库·mysql·毕业设计·ssm·教学评价
雨中飘荡的记忆2 小时前
Spring状态机深度解析
java·后端·spring
晨星3342 小时前
使用 IntelliJ IDEA 轻松连接 Java 与 MySQL 8 数据库
java·开发语言·数据库
PWRJOY3 小时前
【MySQL】使用mycli查看数据库的基本操作
数据库·mysql
SadSunset3 小时前
(16)Bean的实例化
java·数据库·笔记·spring
JIngJaneIL3 小时前
基于Java + vue干洗店预约洗衣系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
cui_win3 小时前
MySQL 压测实战:sysbench 从入门到精通
数据库·mysql·压测·sysbench