2013-06-04 47 views
1

喜IM挣扎简单的查询我想innerjoin阵容S和G组表,但与条件(@ZeroOrOne参数为0或1)如何执行,如果内else语句如果Cluase sqlserver的2008

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 

什么是正确的方法我应该改变我的查询或逻辑?请帮忙。

回答

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