
並び替えた後の表を結合したいと思っています。
UNIONを使うと、結合後でソートしてしまうので、これを回避したいです。
1つ目のSQL
SELECT ID, NAME FROM A_TABLE WHERE F1 = '10' ORDER BY F2,F3
2つ目のSQL
SELECT ID, NAME FROM A_TABLE WHERE F1 = '5' ORDER BY F3,F4
上記の2つの結果を1つにまとめて取得したいのです。
取得順は、1つめのSQLでF2,F3で並び替えられたデータの後、
2つめのSQLでF3,F4で並び替えられたデータにしたいです。
どうか良い方法を教えてください。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
UNIONは、2つのクエリを重複を排除しつつ統合します。
重複を排除するために暗黙のソートが行われます。
暗黙のソートが行われたくないと言うことですので、重複の排除もされたくないかと
想像します。この場合、UNIONでなく、UNION ALLを使うことで、暗黙のソートは
行われません。(重複を排除しないので無駄な暗黙のソートを行わないから)
ただ、同じ表を複数回検索するなら、状況によっては、検索を1回にまとめて、
ソートだけを工夫する方が効率的かもしれません。
select ID,NAME from A_TABLE where F1 in ('10','5')
order by decode(F1,'10',1,'5',2),decode(F1,'10',F2,null),F3,F4;
など。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracleで「文字が無効です」の...
-
2つの列が同じ値の行を取得するSQL
-
SQLローダーCSV取込で、囲み文...
-
select文の実行結果に空白行を...
-
型変換
-
割合(パーセント)を求めるには?
-
単一グループのグループ関数で...
-
サブクエリを使わない方法
-
MySQLでの近似値順での値の取得...
-
ハイフンの入ったデータの並べ替え
-
【PL/SQL】FROM区に変数を使う方法
-
ファイルの漢数字の順番につい...
-
where句中のtrim関数について
-
updateで複数行更新したい
-
並べ替えについて
-
データ
-
ソート(PL/SQL)
-
固定長データのテキストファイ...
-
count関数の値をwhere句で使用...
-
大量レコードをTRUNCATEせずに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracleで「文字が無効です」の...
-
2つの列が同じ値の行を取得するSQL
-
枝番の最大値とその前のデータ...
-
SQL副問い合わせ内のエイリアス
-
SQL文について
-
並び替えた後の表の結合
-
UPDATE文のWHERE句にファンクシ...
-
PL/SQLで…SQLの実行結果を変数...
-
SQLローダーCSV取込で、囲み文...
-
単一グループのグループ関数で...
-
テーブルの最後(最新)のレコー...
-
select文の実行結果に空白行を...
-
並べ替えについて
-
group byの並び順を変えるだけ...
-
SELECT FOR UPDATE で該当レコ...
-
データ
-
【PL/SQL】FROM区に変数を使う方法
-
SQL*Loader Append
-
トランザクションログを出力せ...
-
レコードの登録順がおかしい
おすすめ情報