In questa pagina
Messaggio
Codice: 108
Descrizione in italiano: Il numero di posizione %1! di ORDER BY non è compreso nell’intervallo dei numeri degli elementi specificati nell’elenco di selezione.
Descrizione in inglese: The ORDER BY position number %ld is out of range of the number of items in the select list.
Spiegazione
Quando si usa ORDER BY è possibile specificare i nomi dei campi con cui ordinare oppure l’indice relativo ai campi del SELECT
Per esempio:
SELECT nome, cognome FROM tabella ORDER BY cognome, nome
restituisce lo stesso risultato della query
SELECT nome, cognome FROM tabella ORDER BY 2, 1
dove 2 rappresenta il campo in posizione 2 (cognome) e 1 rappresenta il campo nome.
Causa
Si è specificato un indice nella clausola ORDER BY che non è incluso nella SELECT
Esempio:
SELECT nome, cognome FROM tabella ORDER BY 3, 2, 1
In questo caso non è presente alcun campo in posizione 3, quindi la query restituisce l’errore
Parametri
%1! rappresenta la posizione in cui si trova l’indice errato. Nell’esempio precedente l’indice era il primo (3).
Soluzione
Soluzione 1: rimuovere dall’ORDER BY l’indice che non corrisponde ai campi nella SELECT
Soluzione 2: aggiungere ulteriori campi alla SELECT fino ad avere un campo corrispondente all’indice
Un commento su “108 – Il numero di posizione %1! di ORDER BY non è compreso nell’intervallo dei numeri degli elementi specificati nell’elenco di selezione.”