高分数据库中的SQL语句问题

时间:2009-04-17 19:48:11

标签: sql ms-access

我在java中创建了一个字母游戏,我需要在其中包含一个高分功能。通过JDBC使用Microsoft访问数据库。 数据库中的表包含以下内容

Table name Easy

fields
Name
Score 
Time 

需要一个SQL语句,显示订单最高分和最低时间的前5个分数。 例如。 如果有两个得分为20的球员,那么时间较短的球员应该排在最前面,但如果有一个得分为21的球员,无论时间如何,他都应该排在最前面。

7 个答案:

答案 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