首页 > 解决方案 > 如何在带有 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

如何在这里使用选择案例,我在这里看到了很多解决方案,但不适合我的案例。

标签: mysqlsql

解决方案


如果该值始终为 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

推荐阅读