我有一个简单的查询:'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;这可能是完全错误的尝试,但我对此非常陌生。一些帮助将不胜感激。
答案 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