2011-01-25 5 views
21

SQLiteカラム内の別個の値のリストを注文せずに取得できるかどうかを知りたいですか?SQLite Select DISTINCT Orderingのないカラムの値

次のクエリを試しました。しかし、それは自動的にユニークなテキストを昇順に並べ替えます。

SELECT DISTINCT column FROM table;

Ex。

Mathew 
Mathew 
John 
John 
John 
Numbers 
Numbers 

結果

John 
Mathew 
Numbers 

しかし、私はそれがない注文することがしたいと思います。 Mathew、John、Numbersでそれを好きになるでしょうか

ありがとうございます。

+0

どのような順番で結果が欲しいですか? 'ORDER BY some_other_column'を使用してください。 –

+0

私は、列のテキストに順序を入れずに表示されるようにしたいと思います。私は近くで重複した値を持っています。 –

答えて

33

どのような注文をしますか?

あなたが最初に出現順で値を取得したい場合は、行うことができます。

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

私は私のテーブルにあるのと同じ注文をしたいと思います。しかし、私は上記の質問を理解していない。あなたはそれを少し説明できますか?私は近くで重複した値を持っています。 –

+0

SQLiteBrowserでINTEGER PRIMARY KEY Columnを追加し、その新しいColumn MIN()でORDERED BYを追加しました。 :)ありがとう。 –

+0

ROWIDは暗黙のINTEGER PRIMARY KEYです。 http://www.sqlite.org/lang_createtable.html – AtnNn

2

「注文しない」とはどういう意味ですか? SQLテーブルには自然順序が暗示されていないので、左から右への列によるデフォルトの昇順は、他の順序と同じくらい良好です。別の注文を希望する場合、SELECT DISTINCTはORDER BY句を受け入れます。

+0

実際にSQLiteでこのクエリを使用すると、列のテキストは昇順で並べられます。 –

+0

はい、それは私の主張です。基礎となるテーブル(データが描かれた形式)には「自然な」順序はないので、結果セットをどのようにソートすると思いますか?昇順は他のものと同じくらい意味があります。なぜなら、「順序付けられていない」順序は尊重されないからです。 –

+0

しかし、私はクエリを試したときにSQLiteで順序付けられていることを示します。結果に関する質問を編集しました。 –

0

ちょっと1つの簡単な方法は、あなたがレコードを挿入すると、シリアル番号(それPRIMARY KEYください)を追加することになり、注文を降順にします。