2011-01-25 18 views
21

Vorrei sapere se è possibile ottenere un elenco di valori distinti in una colonna SQLite senza ordinarli.SQLite Selezionare i valori DISTINCT di una colonna senza ordinare

Ho provato la seguente domanda. Ma ordina automaticamente il testo univoco in ordine crescente.

SELECT DISTINCT colonna FROM tabella;

Es.

Colonna

Mathew 
Mathew 
John 
John 
John 
Numbers 
Numbers 

Risultato

John 
Mathew 
Numbers 

Ma vorrei che non da ordinare. Vorrebbe a Mathew, John, Numbers

Grazie.

+0

In che ordine vorresti i risultati? usa 'ORDER BY some_other_column' –

+0

Voglio che venga mostrato in ordine apparente senza alcun ordine sui testi delle colonne. Ho valori duplicati ravvicinati. –

risposta

33

Che ordine vuoi?

Se si desidera ottenere i valori in ordine di apparizione si può fare:

select distinct column 
    from table 
order by min(rowid); 
+1

Mi piacerebbe avere lo stesso ordine che è nel mio tavolo. Ma non capisco sopra la query. Potresti spiegarlo un po '. Ho valori duplicati ravvicinati. –

+0

Ho aggiunto INTEGER PRIMARY KEY Column con SQLiteBrowser e ORDERED BY quella nuova Column MIN(). :) Grazie. –

+0

Il rowid è un implicito INTEGER PRIMARY KEY. Vedi http://www.sqlite.org/lang_createtable.html – AtnNn

2

Cosa intendi "senza ordinare"? Non esiste un ordine naturale implicito in una tabella SQL, quindi l'ordine ascendente predefinito per colonna da sinistra a destra è buono come qualsiasi altro ordine. Se si preferisce un altro ordine, SELECT DISTINCT accetta una clausola ORDER BY.

+0

In realtà con questa query su SQLite, il testo della colonna è ordinato in ordine ascendente. –

+0

Sì, questo è il mio punto. La tabella sottostante (il modulo in cui sono stati disegnati i dati) non ha ordine "naturale", quindi come ti aspetteresti che il set di risultati sia ordinato? L'ordine ascendente ha più senso di qualsiasi altra cosa, dal momento che non esiste un ordine "non ordinato" da rispettare. –

+0

Ma quando ho provato la query mostra ordinato con SQLite. Ho modificato la mia domanda con i risultati. –

0

hey un facile metodo sarà l'aggiunta di un numero di serie (Make it chiave primaria) quando si inserisce un record e rendere l'ordine decrescente.

Problemi correlati