Подтвердить что ты не робот

Заказ Oracle по убыванию с NULL последним

Моя цель - напечатать результат запроса в порядке "DESCENDING". но проблема в том, что строки с значениями NULL попали в верхнюю часть списка.. как поместить нулевые строки внизу, если порядок по убыванию?

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

порядок находится в порядке убывания, я просто хочу поместить строки с нулевыми значениями в нижней части напечатанного результата, так как?

4b9b3361

Ответ 1

Вы можете использовать DESC NULLS LAST для достижения этого.

Вот официальная документация от Oracle.

NULLS LAST

Указывает, что значения NULL должны быть возвращены после значений, отличных от NULL.

Ответ 2

Используйте case

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