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

相关推荐
weixin_42499936几秒前
如何用SQL按条件计算移动求和_结合CASE与窗口函数
jvm·数据库·python
21439651 分钟前
持久化存储如何适配不同浏览器?解决隐私模式下存储失败的指南
jvm·数据库·python
justjinji2 分钟前
c++怎么读取大端序设备的固件bin文件_字节反转与位移操作【详解】
jvm·数据库·python
m0_515098426 分钟前
如何处理视图中的Definer_视图创建者权限变更对视图有效性的影响
jvm·数据库·python
2401_883600258 分钟前
如何创建物化视图_CREATE MATERIALIZED VIEW基本语法与数据填充
jvm·数据库·python
xxjj998a9 分钟前
MySQL无法连接到本地localhost的解决办法2024.11.8
数据库·mysql·adb
电商API_1800790524711 分钟前
京东商品详情接口返回数据说明API调用示例
数据库·性能优化·数据挖掘·数据分析·网络爬虫
Elivs.Xiang14 分钟前
Redis - Docker环境下的持久化、主从复制、哨兵、集群、淘汰策略
数据库·redis·docker
绩隐金15 分钟前
SQL Server 开发系列(第七期):触发器与约束——数据完整性的守护者
数据库
u01091476019 分钟前
JavaScript中类的装饰器提案在属性与方法上的应用
jvm·数据库·python