簡體   English   中英

SQL 我可以在 JOIN 條件中使用帶有加法條件的 CASE 語句嗎

[英]SQL Can I use CASE statement with addition condition in a JOIN condition

我想將 join 與 case 語句和添加條件一起使用,例如:

SELECT
    TableA.* 
FROM
    TableA A
INNER JOIN 
    TableB B ON A.ID =  B.TableA_ID 
    CASE
        WHEN @zerocond = 1 
            THEN AND A.OrganizationId != '0'
        WHEN @zerocond = 2
            THEN AND COM.OrganizationId IN(1,2)
    END

但是此代碼會導致語法錯誤。 誰能幫忙解釋一下?

Join條件和Where子句中使用Case When then是不可能的。 您想要實現的目標可以使用AndOR來實現,如下所示。

SELECT
    TableA.* 
FROM
    TableA A
INNER JOIN 
    TableB B ON A.ID =  B.TableA_ID 
    
Where ((@zerocond = 1 
            AND A.OrganizationId != '0')
        OR (@zerocond = 2
             AND COM.OrganizationId IN(1,2)))

暫無
暫無

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

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