• ベストアンサー
  • すぐに回答を!

SQLコマンドのorder by句

  • 質問No.52071
  • 閲覧数1316
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 78% (11/14)

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

質問者が選んだベストアンサー

  • 回答No.3
  • ベストアンサー

ベストアンサー率 78% (11/14)

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

select 受注番号,NVL(受注金額,-1) as AAA from 受注テーブル order by AAA desc;
でOKかと思います。
はずしてたらごめんなさい。
お礼コメント
moderno_parco

お礼率 78% (11/14)

おかげさまで欲しいデータの取得ができました。
SQLはパズルですね。
ありがとうございました。
投稿日時:2001/03/15 15:24

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 30% (2593/8599)

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

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

あとは属性を追加してヌルをマイナスに置き換えとか?
お礼コメント
moderno_parco

お礼率 78% (11/14)

ヌルをマイナスに置き換きかえる関数を使って試してみます。
ありがとうございました。
投稿日時:2001/03/15 15:27
  • 回答No.1

ベストアンサー率 41% (324/772)

データベースサーバに何を使っているのかが
わからないので、なんともいえないのですが、

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

ではだめなのですか?
お礼コメント
moderno_parco

お礼率 78% (11/14)

oracle8i、SqlPlus、WindowsNTです。
エラー行: 4: エラーが発生しました。
ORA-00933: SQLコマンドが正しく終了されていません。
といわれました。
ご指導ありがとうございました。
投稿日時:2001/03/15 15:31
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ