簡體   English   中英

如何在 sql 語句中使用 SELECT CASE 和 MySql

[英]how to use SELECT CASE in sql statment with MySql

我有下一個 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

如何在這里使用 select 案例,我在這里看到了很多解決方案,但不適合我的案例。

如果該值始終為 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
  SELECT
       xRef, xPar, AccID, AccLevel, AccType, LEFT(AccCode,1) AS xxx,
    CASE
       WHEN LEFT(AccCode,1)='1' THEN 'GOOD1'
       WHEN LEFT(AccCode,1)='2' THEN 'GOOD2'
       WHEN LEFT(AccCode,1)='3' THEN 'GOOD3'
       WHEN LEFT(AccCode,1)='4' THEN 'GOOD4'
       ELSE 'SOMETHING ELSE'
   END AS FLAG 

   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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM