プロが教える店舗&オフィスのセキュリティ対策術

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

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

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

A 回答 (2件)

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



という方法もあります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/16 22:54

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

。。

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

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

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

お礼日時:2007/11/16 22:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!