Ответ 1
Вы можете использовать DESC NULLS LAST
для достижения этого.
Вот официальная документация от Oracle.
NULLS LAST
Указывает, что значения NULL должны быть возвращены после значений, отличных от 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
порядок находится в порядке убывания, я просто хочу поместить строки с нулевыми значениями в нижней части напечатанного результата, так как?
Вы можете использовать DESC NULLS LAST
для достижения этого.
Вот официальная документация от Oracle.
NULLS LAST
Указывает, что значения NULL должны быть возвращены после значений, отличных от NULL.
Используйте case
order by case when web_views is not null
then 1
else 2
end asc,
web_views desc;