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 分钟前
Qt 自定义菜单栏 / 工具栏按钮 QToolButton + InstantPopup 详细解析
开发语言·数据库·qt
Wang's Blog1 小时前
MySQL: 基准测试全流程指南:原理、工具(mysqlslap/sysbench)与实战演示
数据库·mysql
q***06291 小时前
如何在 Windows 上安装 MySQL(保姆级教程2024版)
数据库·windows·mysql
百***06942 小时前
MySQL 创建新用户及授予权限的完整流程
数据库·mysql
全栈工程师修炼指南2 小时前
奇技淫巧 | 巧用阿里云免费 ESA:获取用户真实IP地址与地理位置
数据库·阿里云·云计算
碰大点2 小时前
数据库“Driver not loaded“错误,单例模式重构方案
数据库·sql·qt·单例模式·重构
凌波粒2 小时前
SpringMVC基础教程(1)--MVC/DispathcerServlet
java·spring·mvc
武子康2 小时前
Java-173 Neo4j + Spring Boot 实战:从 Driver 到 Repository 的整合与踩坑
java·数据库·spring boot·后端·spring·nosql·neo4j
哥哥还在IT中2 小时前
深入理解MySQL事务隔离级别与锁机制(从ACID到MVCC的全面解析)
数据库·mysql