2016-06-17 9 views
-1

は、あなたはの出力と同じように注文されますSQL出力順序

select * from table1; 

によって返される出力を想定しても安全であると言うでしょうテーブル1の?

ありがとうございました!

+0

私が表示されないORDER BY句を使用して設定する必要があり、選択した行のための結果により、特定の順序を確認したい場合なぜ –

+2

あなたのDBMSソフトウェア(SQL Server、MySQLなど)に依存するかもしれません - しかし、一般的に注文は保証されていませんd。 – Nicarus

+2

明示的に指定されない限り、順序は保証されませんが、DBMSにはまったく依存します – shamsup

答えて

1

もしあなたが列を意味するなら、私はSSMSの表を編集するときとは違った見方をしたことはありませんが、それが厳しいルールかどうかはわかりません。

行の順序はありません。ソートが存在しない場合、まったく同じクエリでは、毎回同じ順序で行が返されるとは限りません。

これは、クラスタ化されたPKでも、テーブルが句

順なくても、その順序で行を返すことが保証されていない

select * from table1 
order by table1.PK; 

select * from table1 where table1.a<0 
order by table1.PK; 

これは、DUPなければならないと同じになります。私は1つを探して削除します。

0

列の順序はデータベーススキーマで定義されているため、select *の列の返された順序を考慮する必要があります(列の順序を変更するには、スキーマでこの値を変更する列の順序を変更する必要があります。表)

行の順序がない..あなたは、あなたがexplicitally

select * from your_table 
order by your_column 
関連する問題