Problem:
Du vil begrænse antallet af rækker, der kommer fra en forespørgsel i T-SQL.
Eksempel:
I exam
tabel, er der navne på eleverne med resultaterne af eksamen.
navn | eksamen_resultat |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Du ønsker at få de tre rækker med de bedste eksamensresultater.
Løsning:
SELECT TOP 3 * FROM exam ORDER BY exam_result DESC;
Resultatet af forespørgslen ser således ud:
navn | eksamen_resultat |
---|---|
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Diskussion:
Efter SELECT
søgeord, skal du bruge TOP
søgeord sammen med antallet af rækker, du gerne vil hente (her, 3
). Husk at sortere rækkerne efter exam_result
kolonne i faldende rækkefølge ved hjælp af ORDER BY
klausulen og DESC
søgeord.
SELECT TOP 3 * FROM exam ORDER BY exam_result DESC;
Hvis du gerne vil hente tre rækker tilfældigt i stedet for de bedste tre, skal du springe ORDER BY
over del.
SELECT TOP 3 * FROM exam;
Du kan selvfølgelig hente et hvilket som helst antal rækker du ønsker. Bare udskift 3
med dit ønskede nummer.