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.