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后面使用。

相关推荐
树码小子13 分钟前
Mybatis(13)MyBatis Generator(xml生成器)& Mybatis-Plus初识
xml·mybatis
面向对象World26 分钟前
正点原子Mini Linux 4.3寸800x480触摸屏gt115x驱动
linux·服务器·数据库
dinga198510261 小时前
mysql之联合索引
数据库·mysql
微风中的麦穗1 小时前
【SQL Server 2019】企业级数据库系统—数据库SQL Server 2019保姆级详细图文下载安装完全指南
大数据·数据库·sqlserver·云计算·个人开发·运维必备·sqlserver2019
无心水2 小时前
5、微服务快速启航:基于Pig与BladeX构建高可用分布式系统实战
服务器·分布式·后端·spring·微服务·云原生·架构
zjttsh2 小时前
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解
android·数据库·mysql
顾北122 小时前
SpringCloud 系列 04:Gateway 断言 / 过滤器 / 限流 一站式落地指南
java·开发语言·数据库
禹凕2 小时前
MYSQL——基础知识(NULL 值处理)
数据库·mysql
码云数智-大飞2 小时前
SQL Server 无法启动?常见原因及详细解决方法指南
数据库
8486981192 小时前
MySQL 只读库踩坑实录:为什么 INSERT/UPDATE 不报错,DELETE 却直接炸了?
数据库·mysql·hibernate