169 – Nell’elenco ORDER BY la stessa colonna è stata specificata più di una volta. In tale elenco le colonne devono essere univoche.

0
(0)

In questa pagina

Messaggio

Codice: 169

Messaggio in italiano: Nell’elenco ORDER BY la stessa colonna è stata specificata più di una volta. In tale elenco le colonne devono essere univoche.

Messaggio in inglese: A column has been specified more than once in the order by list. Columns in the order by list must be unique.

Spiegazione

L’ordine dei campi in una clausola ORDER BY determina la precedenza dell’ordinamento: si ordina per il primo campo, quindi per il secondo e così via.

Se si specifica il nome di un campo per due volte è come specificare due criteri diversi contemporaneamente.

Esempio:

SELECT Nome, Cognome
FROM Anagrafica
ORDER BY Cognome, Nome, Cognome

in questo caso non si capisce se l’ordinamento per cognome sia prima o dopo quello per nome.

Causa

Un campo è specificato più volte dopo ORDER BY.

Soluzione

Rimuovere uno dei duplicati del campo. Rispetto all’esempio precedente, le due alternative sono entrambe valide:

SELECT Nome, Cognome
FROM Anagrafica
ORDER BY Cognome, Nome, Cognome
SELECT Nome, Cognome
FROM Anagrafica
ORDER BY Cognome, Nome, Cognome

Nel caso in cui due tabelle abbiano campi con lo stesso nome, è sufficiente aggiungere il prefisso che identifica la tabella al campo:

SELECT a.Nome, a.Cognome, u.Nome, u.Cognome
FROM Anagrafica a
    INNER JOIN Utenti u ON a.CodiceFiscale = u.CodiceFiscale
ORDER BY Cognome, Cognome

Questa query restituisce un errore 209 (ciascuna colonna Cognome è ambigua) e un errore 169 perché riconosce che Cognome è scritto più volte.

Con i prefissi che fanno capire la tabella di provenienza la query funziona:

SELECT a.Nome, a.Cognome, u.Nome, u.Cognome
FROM Anagrafica a
    INNER JOIN Utenti u ON a.CodiceFiscale = u.CodiceFiscale
ORDER BY a.Cognome, u.Cognome

Hai trovato utile questo contenuto?

Valutazione: 0 / 5. Voti: 0

Vota per primo questo contenuto

Ci dispiace che tu abbia trovato inutile o sbagliato questo contenuto

Lasciaci un messaggio

Come possiamo migliorare?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.