468x60

martedì 7 agosto 2012

Ordinamento con NULL in MySQL

L'ordinamento ascendente in MySQL funziona in modo da mettere in cima i valori NULL.

Ad esempio, SELECT nickname, name FROM people ORDER BY nickname, produrrà:
nickname name
NULL Art
NULL Mary
Abby Abigal
Bobby Robert
Cindy Cynthia

Capita alcune volte di voler cambiare questa logica in modo da mettere in fondo i valori NULL, per ottenere un risultato di questo tipo:
nickname name
Abby Abigal
Bobby Robert
Cindy Cynthia
NULL Art
NULL Mary

Per farlo dobbiamo aggiungere un campo calcolato, che chiameremo ad esempio ordine, ed ordinare prima in base ad esso. SELECT nickname, name, IF(nickname IS NULL,1,0) AS ordine FROM people ORDER BY ordine, nickname, che produrrà:
nickname name ordine
Abby Abigal 0
Bobby Robert 0
Cindy Cynthia 0
NULL Art 1
NULL Mary 1

Nessun commento:

Posta un commento

468x60

Cerca su Google

Cerca nel Blog con Google