我在java中创建了一个字母游戏,我需要在其中包含一个高分功能。通过JDBC使用Microsoft访问数据库。 数据库中的表包含以下内容
Table name Easy
fields
Name
Score
Time
需要一个SQL语句,显示订单最高分和最低时间的前5个分数。 例如。 如果有两个得分为20的球员,那么时间较短的球员应该排在最前面,但如果有一个得分为21的球员,无论时间如何,他都应该排在最前面。
答案 0 :(得分:7)
select top 5
name,
score,
time
from easy
order by score desc, time asc
答案 1 :(得分:3)
该表名为Easy
,这似乎表明它适用于在Easy模式下玩的玩家。我建议为difficulting添加一个列,并且只有一个大的HighScores
表。
SELECT TOP 5
name, score, time
FROM HighScores
WHERE difficulty = 'Easy'
ORDER BY score desc, time asc
答案 2 :(得分:1)
不是您问过,但您可能有兴趣知道不同数据库的答案不同。例如,在Oracle中将是
select
name,
score,
time
from easy
where rownum <= 5
order by score desc, time asc
在PostgreSQL中,它将是
select
name,
score,
time
from easy
order by score desc, time asc
limit 5
答案 3 :(得分:0)
Select top 5 Name
From Easy
order by score desc, time asc
答案 4 :(得分:0)
SELECT TOP 5 Score, Time
FROM Easy
ORDER BY Score DESC, Time
答案 5 :(得分:0)
其他人建议使用SELECT TOP 5...
解决方案,但是fwiw,此语法是Microsoft SQL Server和Sybase支持的非标准SQL。如果您使用其他品牌的数据库,它将无法正常工作。您应该编辑您的问题并指定您正在使用的数据库的品牌和版本,因为根据该信息,答案可能会有所不同。
答案 6 :(得分:-1)
select top5 Score, Time from Easy order byScore desc, Time