Guida PostgreSQL: Utilizzo di LIMIT e OFFSET

Il comando LIMIT viene utilizzato per limitare il numero di righe restituite da una query. È particolarmente utile quando si desidera ottenere solo un numero specifico di risultati o implementare la paginazione.

Sintassi di base di LIMIT


SELECT colonna1, colonna2, ...
FROM nome_tabella
WHERE condizione
ORDER BY colonna1 [ASC|DESC]
LIMIT numero_di_righe;
    
  • numero_di_righe: Il numero massimo di righe che si desidera ottenere dalla query.

Esempio di utilizzo

Recuperare le prime 5 righe da una tabella:


SELECT * FROM dipendenti
LIMIT 5;
    

Questa query restituirà le prime 5 righe della tabella dipendenti.

Utilizzo di LIMIT con ORDER BY:

Se si desidera ottenere i primi 5 dipendenti con lo stipendio più alto:


SELECT * FROM dipendenti
ORDER BY stipendio DESC
LIMIT 5;
    

Questa query ordina i dipendenti in base al loro stipendio in ordine decrescente e poi restituisce solo le prime 5 righe.

OFFSET con LIMIT

Il comando OFFSET viene spesso utilizzato insieme a LIMIT per implementare la paginazione. OFFSET specifica il numero di righe da saltare prima di iniziare a restituire i risultati.

Sintassi con OFFSET


SELECT colonna1, colonna2, ...
FROM nome_tabella
WHERE condizione
ORDER BY colonna1 [ASC|DESC]
LIMIT numero_di_righe OFFSET numero_di_righe_da_saltare;
    
  • numero_di_righe_da_saltare: Il numero di righe da saltare prima di iniziare a restituire i risultati.

Esempio di utilizzo

Per saltare le prime 10 righe e poi restituire le successive 5 righe:


SELECT * FROM dipendenti
ORDER BY stipendio DESC
LIMIT 5 OFFSET 10;
    

Questa query salta le prime 10 righe e restituisce le 5 righe successive dal risultato ordinato.

Note

  • LIMIT deve essere sempre un numero intero non negativo.
  • Se si imposta LIMIT a zero, la query restituirà un set di risultati vuoto.
  • OFFSET deve essere anch'esso un numero intero non negativo. Se si omette OFFSET, esso predefinisce a zero.

Conclusione

LIMIT e OFFSET sono strumenti potenti in SQL per gestire la quantità di dati restituiti dalle query, specialmente quando si lavora con set di dati di grandi dimensioni o quando si implementa la paginazione.