проблема с оператором SQL в базе данных рекордов - PullRequest
0 голосов
/ 17 апреля 2009

Я создал буквенную игру на Java, и мне нужно включить в нее функцию рекордов. Использование базы данных Microsoft Access через JDBC. Таблица в базе данных содержит следующее

Table name Easy

fields
Name
Score 
Time 

При необходимости оператор SQL, который отображает 5 лучших оценок в порядке наибольшей оценки и минимального времени. например. если есть два игрока, набравшие 20 очков, игрок с меньшим временем должен быть на вершине, но если есть игрок, набравший 21 очко, он должен быть на вершине независимо от времени.

Ответы [ 7 ]

7 голосов
/ 17 апреля 2009
select top 5 
    name,
    score,
    time

from easy

order by score desc, time asc
3 голосов
/ 18 апреля 2009

Стол назван Easy, что указывает на то, что он предназначен для игроков, которые играют в легком режиме. Я бы рекомендовал добавить столбец для сложных и просто иметь одну большую HighScores таблицу.

SELECT TOP 5 
  name, score, time
FROM HighScores
WHERE difficulty = 'Easy'
ORDER BY score desc, time asc
1 голос
/ 17 апреля 2009

Не то чтобы вы спрашивали, но вам может быть интересно узнать, что ответ отличается в разных базах данных. Например, в 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
0 голосов
/ 17 апреля 2009
select top5 Score, Time from Easy order byScore desc, Time
0 голосов
/ 17 апреля 2009

Другие люди предложили решения SELECT TOP 5..., но, между прочим, этот синтаксис является нестандартным SQL, поддерживаемым Microsoft SQL Server и Sybase. Если вы используете базу данных другого бренда, она не будет работать. Вам следует отредактировать свой вопрос и указать, какую марку и версию базы данных вы используете, потому что ответ может отличаться в зависимости от этой информации.

0 голосов
/ 17 апреля 2009
SELECT TOP 5 Score, Time
FROM Easy
ORDER BY Score DESC, Time
0 голосов
/ 17 апреля 2009
Select top 5 Name
From Easy
order by score desc, time asc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...