
SQL Server2005 で開発しています。
Order by で並び替えてレコードをSelectする際に、
Order by の対象列データが同じ場合は、
どういった順番でレコードが取得できるのでしょうか?
TableA
No | Data1 | Data2
1| AAA | 100
2| AAA | 200
3| AAA | 300
4| ABC | 400
5| BBB | 500
(Noはクラスタ化PK)
例えば、上のようなテーブルから次のSQLを実行すると
(1)Select * From TableA ;
(2)Select * From TableA Order by Data1 Asc;
(3)Select * From TableA Order by Data1 Asc, No Asc;
(1)(2)(3)全て、次の順で返ってきました。
1| AAA | 100
2| AAA | 200
3| AAA | 300
4| ABC | 400
5| BBB | 500
しかし、(2)のSQLは、データによって
次の順で返ってくることがありました。
3| AAA | 300
1| AAA | 100
2| AAA | 200
4| ABC | 400
5| BBB | 500
1~3レコード目までは全てData1がAAAのレコードですが
特に指定していなくても、No(PK)の順になるのかと思っていました。
なお、レコードができた(Insert順)でもなさそうです。
この、順番は何で決まっているのでしょうか?
No.2ベストアンサー
- 回答日時:
>特に指定していなくても、No(PK)の順になるのかと思っていました。
下記のリンクに「ORDER BY 句が指定されていない限り、結果セットとして返される行の順序は保証されません。」と書いてあるので実際、保証されていないのだと思います。
http://msdn.microsoft.com/ja-jp/library/ms188385 …
で、実際にどういう順番で返ってくるのかはインデックスの種類(クラスタかどうかなど)や設定状況によって変わってくるのでケースバイケースだと思います。
ありがとうございます。
リンク先の↓を見て、すっきりしました。
「ORDER BY 句が指定されていない限り、結果セットとして返される行の順序は保証されません。」
No.3
- 回答日時:
ソートアルゴリズムを勉強すれば分かりますが、ほとんどのソートアルゴリズムはキーで指定された以外のデータ順については保障がありません。
(安定的なソートではない)。また、RDBMSが仮に安定的なソートアルゴリズムであっても、どのような順序にデータをフェッチするかはRDBMSの実装に依存しています。
> この、順番は何で決まっているのでしょうか?
きまりはないと思ってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- PostgreSQL SQLで検索結果の記事を表示したい 1 2022/04/28 21:03
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP PHP MySql ページング 2 2022/09/20 06:38
- JavaScript jsonテキストデータの並び替えができるサービスを教えてください 2 2022/08/05 20:16
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードの登録順がおかしい
-
ファイルの漢数字の順番につい...
-
エクセル、並び替え正しくソー...
-
select文
-
INNER JOINについて
-
MySQLでカタカナでの並び替えが...
-
リストボックス内を昇順並べる方法
-
文字型の順番がうまく並ばない。
-
アクセスに関して。クエリの並...
-
末数字でソート
-
Excelのオートフィルタでソート...
-
ファイルメーカーでソート後の...
-
SQLローダーCSV取込で、囲み文...
-
単一グループのグループ関数で...
-
テーブルの最後(最新)のレコー...
-
select文について
-
Oracleで「文字が無効です」の...
-
REGEXPで希望の動作をしてくれない
-
timestamp with time zone型の...
-
where句中のtrim関数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードの登録順がおかしい
-
ファイルの漢数字の順番につい...
-
並べ替えについて
-
エクセル、並び替え正しくソー...
-
ファイルメーカーでソート後の...
-
1の行を固定した上でVBAを用い...
-
リストボックス内を昇順並べる方法
-
テーブルレーコードをソートし...
-
月末日のみソートしたい
-
accessでDISTINCT 句と矛盾
-
Excelのオートフィルタでソート...
-
SQLデータベースの処理
-
上から何番目か。
-
ソート(PL/SQL)
-
コンボボックスのソートについて
-
ハイフンの入ったデータの並べ替え
-
OracleとAccessの出力順の違い
-
MySQLで都道府県順にソート
-
並び替え
-
タイトル行を固定してソートしたい
おすすめ情報