mysql - 如何在带有 MySql 的 sql 语句中使用 SELECT CASE
问题描述
我有下一个 sql 语句,我想检查 xxx 的值:
如果 xxx=1 则 "good1"
如果 xxx=2 则 "good2"
如果 xxx=3 那么“good3”
如果 xxx=4 那么“good4”
如果 xxx=5 则 "good5"
SELECT
xRef, xPar, AccID, AccLevel, AccType, LEFT(AccCode,1) AS xxx
FROM (
SELECT Parent_AccRef AS xRef, Parent_ParentID AS xPar FROM tblaccountsparents
union ALL
SELECT AccRef AS xRef, AccID AS xPar FROM tblaccounts WHERE AccType<>'final' AND AccParent<>0) xtbl
INNER JOIN tblaccounts ON tblaccounts.AccRef = xtbl.xRef
如何在这里使用选择案例,我在这里看到了很多解决方案,但不适合我的案例。
解决方案
如果该值始终为 1-5,那么如何创建您想要使用的字符串CONCAT()
:
SELECT xRef, xPar, AccID, AccLevel, AccType,
CONCAT('good', LEFT(AccCode,1)) AS whatever
如果该值可以是其他值,那么您可以添加一个CASE
表达式:
SELECT xRef, xPar, AccID, AccLevel, AccType,
(CASE WHEN LEFT(AccCode, 1) BETWEEN '1' AND '5'
THEN LEFT(CONCAT('good', LEFT(AccCode, 1))
END) AS whatever
推荐阅读
- python - 似乎无法生成随机数
- c++ - SFML 程序因窗口标题中的非 ASCII 字符而崩溃
- python - 在我的 Mac 操作系统上下载 rasa 时出现 tensorfow 插件问题
- node.js - 节点:npm basic-ftp,异步等待在 foreach 循环中不起作用
- python - 如何从 discord.py 中的 user_id 获取成员对象
- python - Blender 中的多视图立体 3D 构建
- java - 使用编码字节数组进行 RSA 解密很好,但使用编码字符串失败 [IllegalBlockSizeException]
- javascript - 如何制作一个为 setTimeout 循环创建切换按钮的函数?
- css - 应用 Primevue 主题
- apache-spark-sql - Databricks Azure 中的结构化流式处理引发异常 - java.lang.IllegalStateException:读取增量文件 dbfs 时出错:/raw_zone/1.delta