我想将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
在这种情况下是不可能的使用下面的And
和OR
,您想要实现的目标是可行的。
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)))