SQL我可以在JOIN条件中使用带有加法条件的CASE语句吗



我想将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)))

最新更新