2017-04-04 1 views
1

は、私は2つだけの列PK IDと固有の名前を持っている辞書テーブルを作成しようとしている注文テーブルを作成します。ソート

SELECT * 
FROM [SnApp].[DictionaryErrorType] 

I got output sorted by Name not by primary key

なぜですか?

この2つの列のみを持つことはできますが、名前ではなくIDでソートできますか?

+0

「ORDER BY」を持たない選択項目に表示される注文は、蝶によって壊れる錯覚です羽ばたき – xanatos

+1

*** ** ORDER BY句を明示的に指定していない場合、***は順序がありません!*** - 注文が必要な場合は、 'ORDER BY'を使用してください..... –

答えて

3

SQL Serverテーブルのデータは、本質的に発注されていません。ただ存在するだけです。

あなたはそれがソートされた順序で返しますデフォルトで時々昇順インデックスをクラスタ化されていますしている場合は、明示的に句

SELECT * 
FROM [SnApp].[DictionaryErrorType] 
    ORDER BY Id 

順に言及する必要がORDER BY

select * 
from [SnApp].[DictionaryErrorType] 
order by ID 
+0

I私はOrder by節を使用できることを知っています。それはここでは問題ではありません。私はこの条項なしでデータを注文しようとしています。 名前に固有の列を追加しないと、データはIDでソートされます – AdamN

+0

私が言ったように、行は順番に格納されません。 ** **クエリで定義する必要があります。 – JohnHC

+0

しかし、問合せでソート順序が定義されていない場合、SQLはIDまたはこの場合は名前列でソートされたデータを戻します。どうして ?これを定義するフラグはありませんか? – AdamN

1

を使用し、正しい順序を取得するにはそこにソートされた結果を保証することはできません