2013-07-14 16 views
13

mein Ziel ist, das Ergebnis der Abfrage in "Reihenfolge" Reihenfolge zu drucken. aber das Problem ist, die Zeilen mit NULL-Werten gingen über die Liste. Wie setze ich die Nullzeilen unten, wenn die Reihenfolge nach absteigend ist?Oracle Reihenfolge durch absteigend mit NULL letzten

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; 

das Probenergebnis geht so

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

die Reihenfolge in absteigender Reihenfolge, ich will nur die Zeilen mit Nullwerten am unteren Rand des Druckergebnisses setzen, so wie?

Antwort

26

Sie DESC NULLS LAST das erreichen nutzen können.

Hier ist die official documentation von Oracle.

NULLS LAST

Gibt an, dass NULL-Werte sollten nach nicht-NULL-Werte zurückgegeben werden.

+0

oh mein ... das war schnell .. danke für die Hilfe: D – sasori

+2

@sasori - aber es wäre noch schneller für dich gewesen, die Dokumentation selbst gelesen zu haben. – APC

+0

@APC Das scheint die Dokumentation für "JavaDB" zu sein, nicht die Oracle-Datenbank. In diesem Fall ist es genauso, aber [Oracles aktuelle Dokumentation] (http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm#i2171079) ist eher undurchdringlich. [PSOUG] (http://psoug.org/reference/orderby.html) neigt dazu, hilfreicher zu sein, aber selbst sie sind manchmal ziemlich ausführlich. – jpmc26

6

Verwenden Sie ein case

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

danke, ich werde die erste Antwort als die beste wählen, obwohl es keine bedingte Anweisung erfordert, um das Ziel – sasori

+2

+1 zu erreichen. . . Ich bevorzuge diese Version, weil sie in mehr Datenbanken funktioniert. –

+0

Sie haben meinen und meinen Kollegen Tag gerettet! –