Sql server 2008 如何在Sql Server 2008 Where子句中执行if else语句

Sql server 2008 如何在Sql Server 2008 Where子句中执行if else语句,sql-server-2008,where-clause,if-statement,Sql Server 2008,Where Clause,If Statement,我正在处理以下简单的查询。我想内部连接s组和g组表,但有条件(@ZeroOrOne参数将为0或1) 什么是正确的方法;我应该更改查询或逻辑吗?试试这个 WHERE s.TeamId = CASE WHEN IsNumeric(@ZeroOrOne) = 0 THEN g.Team1Id ELSE g.Team2Id END 或者您也可以在ON子句中使用此选项 JOIN Table s ON s.TeamId = CASE WHEN IsNumeric(@ZeroOrOne

我正在处理以下简单的查询。我想内部连接s组和g组表,但有条件(@ZeroOrOne参数将为0或1)

什么是正确的方法;我应该更改查询或逻辑吗?

试试这个

  WHERE 
  s.TeamId = CASE WHEN IsNumeric(@ZeroOrOne) = 0 THEN g.Team1Id  
  ELSE g.Team2Id END
或者您也可以在ON子句中使用此选项

JOIN Table s
  ON s.TeamId = CASE WHEN IsNumeric(@ZeroOrOne) = 0 THEN g.Team1Id  
  ELSE g.Team2Id END
试试这个

  WHERE 
  s.TeamId = CASE WHEN IsNumeric(@ZeroOrOne) = 0 THEN g.Team1Id  
  ELSE g.Team2Id END
或者您也可以在ON子句中使用此选项

JOIN Table s
  ON s.TeamId = CASE WHEN IsNumeric(@ZeroOrOne) = 0 THEN g.Team1Id  
  ELSE g.Team2Id END