返回SQL Server查询中的“计算”列

时间:2014-04-30 11:20:17

标签: sql sql-server

我有一个简单的查询:'SELECT MatchID, ScoreHome, ScoreAway FROM Match',它返回如下数据:

MatchID ScoreHome   ScoreAway
1       0           0
2       1           3
3       1           3
4       2           0
5       3           1

我需要确定比赛结果是什么,并将结果作为附加列返回:

MatchID ScoreHome   ScoreAway   Result
    1       0           0       The Draw
    2       1           3       Away Win
    3       1           3       Away Win
    4       2           0       Home Win
    5       3           1       Home Win

我一直试图找出如何使用CASE命令来做到这一点,但没有成功。到目前为止,我有这样的事情:

DECLARE @result VARCHAR(8)
SELECT CASE @result 
           WHEN (ScoreHome > ScoreAway) THEN "Home Win"
           WHEN (ScoreHome < ScoreAway) THEN "Away Win"
           ELSE "The Draw"
       END 
  FROM Match

但是这给了我'Incorrect syntax near '>'。&#39;这可能是完全错误的尝试,但我对此非常陌生。一些帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您不必声明任何变量来实现您的目标:

SELECT 
   MatchID,
   ScoreHome, 
   ScoreAway,
   (CASE WHEN (ScoreHome > ScoreAway) THEN 'Home Win'
         WHEN (ScoreHome < ScoreAway) THEN 'Away Win'            
         ELSE 'The Draw' END
   ) AS Result
FROM 
   Match

答案 1 :(得分:0)

请尝试:

select 
    *, 
    (case when ScoreHome=ScoreAway then 'The Draw' 
    when ScoreHome<ScoreAway then 'Away Win' 
    else 'Home Win' end) Result
from tbl