关于oracle:Oracle-order-by-处理NULL值

31次阅读

共计 377 个字符,预计需要花费 1 分钟才能阅读完成。

问题点:缺省解决 Oracle 在 Order by 时缺省认为 null 是最大值,所以如果是 ASC 升序则排在最初,DESC 降序则排在最前

解决方案:
应用 nulls first 或者 nulls last 语法
Nulls first 和 nulls last 是 Oracle Order by 反对的语法
如果 Order by 中指定了表达式 Nulls first 则示意 null 值的记录将排在最前 (不论是 asc 还是 desc)
如果 Order by 中指定了表达式 Nulls last 则示意 null 值的记录将排在最初 (不论是 asc 还是 desc)

-- 将 nulls 始终放在最初
select * from user where age > 18 order by birthday desc nulls last; 
-- 将 nulls 始终放在最前
select * from user where age > 18 order by birthday nulls first

正文完
 0