2013-07-14 10 views
13

私の目的は、クエリの結果を "DESCENDING"の順序で表示することです。しかし問題は、NULL値を持つ行がリストの最上位に来たことです。順序が降順である場合は、NULL行を一番下に置く方法は?最後にNULLで降順でOracleの注文

select mysubcat.subcat 
     , mysubcat.subcatid as subcat_id 
     , (select SUM(myad.PAGEVIEW) 
      from myad 
      where MYAD.CREATEDDATE between '01-JUL-13 02.00.49.000000000 PM' and '13-JUL-13 02.00.49.000000000 PM' 
      AND MYAD.status = 1 
      and MYAD.mobileapp IS NULL 
      and myad.subcatid = mysubcat.subcatid)as web_views 
from mysubcat 
order by web_views desc; 

サンプル結果は順序が降順にあるこの

       SUBCAT_ID WEB_VIEWS 
Swimming Lessons    56  (null)  
Medical Services    17  (null) 
Mobile Phones & Tablets   39  6519 
Home Furnishing & Renovation 109  4519 

ようになり、私はちょうど印刷結果の下部にNULL値を持つ行を入れたいので、どのように?

答えて

26

を使用してください。

ここは、Oracleのofficial documentationです。

NULLS LAST

は、NULL値は非NULL値の後に返されるべきであることを指定します。

+0

ああ、私は...速かったです。助けてくれてありがとうございます:D – sasori

+2

@サソリ - あなたが書類を読んだほうがずっと速かったでしょう。 – APC

+0

@APC Oracleデータベースではなく、「JavaDB」のドキュメントのようです。この場合も同じことが起こりますが、[Oracleの実際のドキュメント](http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm#i2171079)は、あまり浸透しない傾向があります。 [PSOUG](http://psoug.org/reference/orderby.html)はもっと役立つ傾向がありますが、時にはかなり冗長でもあります。 – jpmc26

6

は、あなたがそれを達成するためにDESC NULLS LASTを使用することができますcase

order by case when web_views is not null 
       then 1 
       else 2 
     end asc, 
     web_views desc; 
+0

ありがとうございます、私はあなたの目標を達成するために条件文を必要としませんので、最高のものとして最初の答えを選択します – sasori

+2

+1。 。 。より多くのデータベースで動作するので、私はこのバージョンを好む。 –

+0

あなたは私と私の同僚の日を救った! –

関連する問題