带条件的sql[db2]select语句

带条件的sql[db2]select语句,sql,select,db2,Sql,Select,Db2,我有两张桌子。 player1有行用户名、分数、游戏id,… player2有行用户名、分数、游戏id… 如何为同一游戏id选择得分最高的用户名 我所拥有的是 SELECT player1.username winning, player1.points, player1.game_id FROM player1 INNER JOIN player2 ON player1.game_id = player2.game_id WHERE player1.points > play

我有两张桌子。
player1有行用户名、分数、游戏id,…
player2有行用户名、分数、游戏id…
如何为同一游戏id选择得分最高的用户名

我所拥有的是

SELECT player1.username winning,
  player1.points,
  player1.game_id 
FROM player1 
INNER JOIN player2 ON player1.game_id = player2.game_id
WHERE player1.points > player2.points

这应该做到:

SELECT
    game_id, 
    CASE WHEN p1.score > p2.score THEN p1.username ELSE p2.username END AS winner
FROM
    player1 p1
INNER JOIN
    player2 p2 ON p1.game_id = p2.game_id
ORDER BY 
    p1.game_id ASC
正如Darius提到的,您可能希望根据抽签的情况调整案例陈述,您可以将其更改为以下内容:

CASE WHEN p1.score > p2.score THEN p1.username WHEN p1.score < p2.score THEN p2.username ELSE 'Draw' END AS winner
CASE当p1.score>p2.score然后p1.username当p1.score

这实际上取决于您希望在该场景中显示的内容。

您还可以优化案例表达式,以便在分数相等的情况下,返回一些信息来告诉您
CASE WHEN p1.score > p2.score THEN p1.username WHEN p1.score < p2.score THEN p2.username ELSE 'Draw' END AS winner