[英]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.