繁体   English   中英

sql [db2] select条件语句

[英]sql [db2] select statement with condition

我有两张桌子。
player1具有用户名,分数,game_id等行...
player2包含用户名,得分,game_id ...
如何为相同的game_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 player2.username winning,
  player2.points,
  player2.game_id 
FROM player1 
INNER JOIN player2 ON player1.game_id = player2.game_id
WHERE player2.points > player1.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所述,您可能希望根据Draw的情况调整CASE语句,您可以将其更改为以下形式:

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

这实际上取决于您要在那种情况下显示什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM