I want to use join with case statement and addition condition, for example :
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
But this code results in a syntax error. Can anyone help to explain a little?
Advertisement
Answer
Using Case When then in Join Condition and in Where Clause is not possible in this case
What you are trying to achieve is doable with And and OR like below.
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)))