我有一个名为游戏的表,其中包含以下列:home_team, away_team, home_score, away_score
我想创建一个添加列winner
的视图,该列将获胜者设置为home_team
,away_team
或'TIE'
(如果得分相等)。< / p>
可以使用视图完成吗?我需要获胜者在飞行中计算而不是存储在表格中。我也不想使用触发器。
我正在使用MySQL 5.5作为我的SQL服务器。
谢谢!
答案 0 :(得分:5)
Psuedo-code没有您的架构......
SELECT CASE
WHEN home_score > away_score THEN home_team
WHEN home_score < away_score THEN away_team
ELSE 'TIE'
END CASE
这假设您的home_team
和away_team
列是某种varchar
类型。
另外,这不是检查NULL
,因此如果分数可以是NULL
,则需要在WHEN
子句中处理。