Reputation: 2145
I'm working on the following simple query. I want to innerjoin squad s and group g tables but with condition (@ZeroOrOne parameter will be 0 or 1)
WHERE
CASE WHEN IsNumeric(@ZeroOrOne) = 0 THEN
s.TeamId=g.Team1Id --if @ZeroOrOne value is 0 then perform this statement
ELSE
s.TeamId=g.Team2Id --if @ZeroOrOne value is 1 then perform this statement
What is the right way; should I change my query or logic?
Upvotes: 1
Views: 55
Reputation: 812
Try this.
WHERE
s.TeamId = CASE WHEN IsNumeric(@ZeroOrOne) = 0 THEN g.Team1Id
ELSE g.Team2Id END
OR you can also use this in ON clause
JOIN Table s
ON s.TeamId = CASE WHEN IsNumeric(@ZeroOrOne) = 0 THEN g.Team1Id
ELSE g.Team2Id END
Upvotes: 1