
データ取得時に列番号を組み込みたい場合
ROW_NUMBER() OVER (ORDER BY ソートキー)
で実現できますが、これは実際ソートも行ってくれるのでしょうか?
例えば
1)
select dt1,dt2, dt3,ROW_NUMBER() OVER (ORDER BY dt1,dt2,dt3) as dt4
from table_1
2)
select dt1,dt2, dt3
from table_1
ORDER BY dt1,dt2,dt3
では同じ順序でデータが取得されるのでしょうか?
簡単にデータを作ってみたところ、同じようなんですが・・・・
No.1ベストアンサー
- 回答日時:
SQL SERVER 2008 R2、 PostgreSQL 9.1(cygwin)で試したところではrow_number()のover句でのオーダー順で出力されました。
実行計画をみても、WINDOWSソートの後はシーケンス処理のみということで今の実装上ではover句の指定順になると思われます。
なお、SELECT文の最後にORDER BYでROW_NUMBER関数の値を指定したところ、SQL SERVER 2008 R2では無視(最適化)され、PostgreSQLでは実行されるようです。
ただし、SQLの規格としてはおそらくover句順を保証してはいないと思います。
この回答への補足
ありがとうございます。
SQLServer2008 では無視(最適化)されるとのことですがこれはどういう意味なんでしょうか?
試してみたものは 2005 Express なのですが、実装は 2008 R2 なので詳細が気になります。
2008 R2 はMK時にインストールする予定なのでまだ環境はありません。
結局
select dt1,dt2, dt3, dt4 from
(
select dt1,dt2, dt3,ROW_NUMBER() OVER (ORDER BY dt1,dt2,dt3) as dt4
from table_1
) mainsearch
order by dt4
と記述するということで問題ないのでしょうか?
(うろ覚えですが order とか where とかってエイリアスはNGだったようなので・・・)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タイトル行を固定してソートしたい
-
並べ替えについて
-
都道府県順、北からソートした...
-
レコードの登録順がおかしい
-
エクセル、並び替え正しくソー...
-
アクセスで曜日の並び順を変えたい
-
MySQLでカタカナでの並び替えが...
-
テーブルレーコードをソートし...
-
becky!での表示について質問
-
月末日のみソートしたい
-
ファイルの漢数字の順番につい...
-
エクセルの縦列のソートできま...
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
引数によってwhere句を切り替え...
-
単一グループのグループ関数で...
-
トランザクションログを出力せ...
-
select文の実行結果に空白行を...
-
SQLで条件にヒットしたレコード...
-
【PL/SQL】FROM区に変数を使う方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードの登録順がおかしい
-
1の行を固定した上でVBAを用い...
-
並べ替えについて
-
ファイルの漢数字の順番につい...
-
エクセル、並び替え正しくソー...
-
テーブルレーコードをソートし...
-
ソート(PL/SQL)
-
ハイフンの入ったデータの並べ替え
-
SQLで曜日のソートを月火水木金...
-
Selectした時のレコードの取得順
-
SQLデータベースの処理
-
リストボックス内を昇順並べる方法
-
月末日のみソートしたい
-
ファイルメーカーでソート後の...
-
accessでDISTINCT 句と矛盾
-
アクセスに関して。クエリの並...
-
Excel VBA での大文字優先ソート
-
Excel VBAのわかりやすい教科...
-
オープンオフィス
-
Oracleのソート
おすすめ情報