skhurams
skhurams

Reputation: 2145

How to perform if else statement within Where clause Sql Server 2008

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

Answers (1)

Maximus
Maximus

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

Related Questions