sql >> Database teknologi >  >> RDS >> Mysql

Kan der være en databaseagnostisk SQL-forespørgsel til at hente de øverste N rækker?

Sådan får du de 5 bedste scorere fra denne tabel:

CREATE TABLE people
             (id      int, 
              name    string, 
              score   int)

prøv denne SQL:

SELECT id, 
       name, 
       score
FROM   people  p
WHERE  (SELECT COUNT(*) 
        FROM   people p2
        WHERE  p2.score  > p.score 
       ) <=4 

Jeg tror, ​​det burde virke de fleste steder.



  1. SQL-forespørgsel til at sammenkæde kolonneværdier fra flere rækker i Oracle

  2. Hvordan pivoterer man? Hvordan konverterer man flere rækker til én række med flere kolonner?

  3. mysql ur

  4. Har problemer med UnixODBC, FreeTDS og PyODBC