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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルの漢数字の順番につい...
-
並べ替えについて
-
ハイフンの入ったデータの並べ替え
-
SELECT文のソート条件
-
エクセルVBAでデータ並べ替え
-
月末日のみソートしたい
-
レコードの登録順がおかしい
-
タイトル行を固定してソートしたい
-
SQLのORDERBY句について質問です。
-
上から何番目か。
-
Excelのオートフィルタでソート...
-
アクセスで曜日の並び順を変えたい
-
リストボックス内を昇順並べる方法
-
テーブルレーコードをソートし...
-
1の行を固定した上でVBAを用い...
-
コンボボックスのソートについて
-
大きいデータ数のテーブルに対...
-
数字と漢字が混じった日付デー...
-
ファイルメーカーでソート後の...
-
SQLローダーCSV取込で、囲み文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルの漢数字の順番につい...
-
並べ替えについて
-
レコードの登録順がおかしい
-
1の行を固定した上でVBAを用い...
-
テーブルレーコードをソートし...
-
リストボックス内を昇順並べる方法
-
エクセル、並び替え正しくソー...
-
コンボボックスのソートについて
-
月末日のみソートしたい
-
ハイフンの入ったデータの並べ替え
-
accessでDISTINCT 句と矛盾
-
アクセスに関して。クエリの並...
-
都道府県順、北からソートした...
-
SQLで曜日のソートを月火水木金...
-
数字と漢字が混じった日付デー...
-
Excelのオートフィルタでソート...
-
Selectした時のレコードの取得順
-
ファイルメーカーでソート後の...
-
excel:一番上の行がソートでき...
-
OracleとAccessの出力順の違い
おすすめ情報