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

相关推荐
笨笨饿22 分钟前
#102_Codex无在VSCold无法打开
java·c语言·数据库·笔记
向夏威夷 梦断明暄29 分钟前
基于Tez引擎的 Hive SQL 性能优化
hive·sql·性能优化
向夏威夷 梦断明暄30 分钟前
从架构特点到功能缺陷,重新认识分析型分布式数据库
数据库·分布式·架构
小罗水39 分钟前
第1章 大模型、企业知识库与 RAG 平台概述
java·spring
不知疲倦的仄仄1 小时前
MySQL/Read View快照/MVCC/串行化
java·数据库·mysql
向夏威夷 梦断明暄1 小时前
C# 弃元模式:从语法糖到性能利器的深度解析
服务器·数据库·c#
qq_185198691 小时前
骆驼任务Flowable + Apache Camel 集成
spring·apache·flowable
糖果店的幽灵1 小时前
大模型测评DeepEval快速入门-RAG指标详解
数据库·人工智能·langgraph·大模型测评·deepeval
lichuangcsdn2 小时前
【Spring AI 学习(一)】spring ai是什么
人工智能·学习·spring·spring ai