こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

SQL ORDER BYにおける条件について

SQLのORDER BY句について質問です。

項目A,B,Cがあり、
 項目AがNULLの場合   → ORDER BY 項目B,項目C
 項目AがNULL以外の場合 → ORDER BY 項目A,項目C
としたいのですが、どう指定すればいいでしょうか?
色々と調べたところ、CASE文を使用する?のかなと思って
いるのですが、具体的には回答を得ていません。

お手数ですが、ご回答宜しくお願い致します。
※使用DBはOracle10です。

投稿日時 - 2007-11-16 01:26:34

QNo.3521973

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

order by nvl(項目A,項目B),項目C

という方法もあります。

投稿日時 - 2007-11-16 09:22:45

お礼

ご回答ありがとうございました。
order by句でnvlを使用できるとは思いませんでした。
早速試してみます。

投稿日時 - 2007-11-16 22:54:31

ANo.1

Oracleの環境がないのですが。。。

「order by case when A is not null then A else B end,C」

といった書き方ができるRDBMSはあります。
ただし、こういった書き方をすると、インデクスを利用してのソート抑止ができないといった問題があります。検索条件により、件数を絞り込んだ後ならいいですけどね。

投稿日時 - 2007-11-16 05:32:19

お礼

ご回答ありがとうございました。
インデクスを利用してのソート抑止ができないという点は
気になりますが・・・。

投稿日時 - 2007-11-16 22:52:24

あなたにオススメの質問