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

受注金額の大きい順にリストするために
select 受注番号,受注金額 from 受注テーブル order by 受注金額 desc;
を発行すると、受注金額(数値型)が未定義(null)のものが上位になってしまします。
受注金額がnullのものを零より小さい扱いでリストする方法を教えて下さい。
尚、・・・ where 受注金額 is not null は不可です。
宜しくお願いします。

A 回答 (3件)

データベースサーバに何を使っているのかが


わからないので、なんともいえないのですが、

select 受注番号,受注金額 from 受注テーブル
WHERE 受注金額 is not null
order by 受注金額 desc
union
select 受注番号,受注金額 from 受注テーブル
WHERE 受注金額 is null

ではだめなのですか?
    • good
    • 0
この回答へのお礼

oracle8i、SqlPlus、WindowsNTです。
エラー行: 4: エラーが発生しました。
ORA-00933: SQLコマンドが正しく終了されていません。
といわれました。
ご指導ありがとうございました。

お礼日時:2001/03/15 15:31

単純な方法はないように思います。



泥臭いですが、ヌルとヌル以外を別処理してUNIONでつないでは?
SELECT文が2つになって大変ですけどね。

あとは属性を追加してヌルをマイナスに置き換えとか?
    • good
    • 0
この回答へのお礼

ヌルをマイナスに置き換きかえる関数を使って試してみます。
ありがとうございました。

お礼日時:2001/03/15 15:27

受注金額がnullのものを-1としても良いなら、



select 受注番号,NVL(受注金額,-1) as AAA from 受注テーブル order by AAA desc;
でOKかと思います。
はずしてたらごめんなさい。
    • good
    • 0
この回答へのお礼

おかげさまで欲しいデータの取得ができました。
SQLはパズルですね。
ありがとうございました。

お礼日時:2001/03/15 15:24

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