Specifica SQL-99, è specificata per ordinare il risultato e limitarlo in seguito?

0

Se ho scritto questo in MySQL

SELECT * FROM foo ORDER BY bar LIMIT 1

ordinerebbe prima il risultato e lo limiterà in seguito. Prendo sempre la barra più in basso.

Mi chiedo se questo è specificato in questo modo negli standard SQL e come controllarlo?

Tutto quello che ho trovato sono alcuni BNF che non spiegano come dovrebbe funzionare qualcosa, ma solo quale sintassi è valida.

    
posta Gundon 15.11.2013 - 12:01
fonte

1 risposta

1

SQL 99 non ha LIMIT . Questa è un'estensione in MySQL (e pochi altri database) inizialmente creata dal fondatore di PHP Rasmus Lerdorf .

SQL 2003 ha aggiunto il supporto per un% paragonabile OFFSET sytnax di questo modulo:

SELECT ... [ ORDER BY ... ]
   OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS} ONLY

Non sono sicuro che nessun RDMBS lo supporti ancora.

Per verificare tali caratteristiche è possibile acquistare lo standard ISO. Ma come la maggior parte dei database implementano leggermente lo standard. In termini pratici, farai meglio a controllare i manuali dei sistemi che vuoi supportare e testare correttamente la tua applicazione.

    
risposta data 15.11.2013 - 12:16
fonte

Leggi altre domande sui tag