`

Oracle 空值的排序问题

阅读更多
Oracle 空值的排序问题

今天在做项目的时候遇到一个数据排序的问题,当排序字段为空时,空值会排在数字的前面,这样的排序会非常难看,经过一番努力,终于找到原因了。因为ORACLE认为空值是最大的值,所以将SQL语句改为 ...order by ”排序字段" desc nulls last。

我的补充:这个“order by column_name desc nulls last” 没有错,但是还有其他解决方案也可以使用nvl函数将null替换成一个其他值 例如 order by nvl( column_name,'-1'),当然也可以使用case语句。

列举一下Oracle关于null排序的语法
oracle认为 null 最大。

升序排列,默认情况下,null值排后面。

降序排序,默认情况下,null值排前面。

有几种办法改变这种情况:

(1)用 nvl 函数或decode 函数 将null转换为一特定值

(2)用case语法将null转换为一特定值(oracle9i以后版本支持。和sqlserver类似):
order by (case mycol when null then ’北京漂客’ else mycol end)

(3)使用nulls first 或者nulls last 语法。

这是oracle专门用来null值排序的语法。

nulls first :将null排在最前面。如:select * from mytb order by mycol nulls first

nulls last :将null排在最后面。如:select * from mytb order by mycol nulls last

Oracle Null排序语法来自 http://www.cnblogs.com/pacer/archive/2010/03/02/1676371.html

第二种

  select  * from ki order by NVL(to_purchase_date, to_date('1900-01-01

00:00:00','yyyy/MM/dd/hh24/mi/ss')) desc
  
分享到:
评论

相关推荐

    关于oracle空值的解决方法[收集].pdf

    Oracle空值并不是一个实际的值,它表示未知或者缺失的数据。以下是对Oracle空值及其解决方案的详细说明: 一、空值的生成与特点 1. 空值生成:当向表中插入记录,如果某个字段没有设定非空约束(NOT NULL),那么...

    Oracle数据库空值应用方法研究.pdf

    - 对于Oracle数据库的空值应用,开发者和研究人员需要参考Oracle官方文档、专业书籍和在线资源,以确保正确理解和使用空值,避免潜在的问题。 综上所述,理解并熟练掌握Oracle数据库中的空值处理是数据库管理和...

    oracle sql 排序

    总结三种排序方式的共同点和不同点,已经排除空值后排序的oracle语句用法

    oracle使用order by排序null值如何处理

    在Oracle数据库中,排序(Order By)是SQL查询的一个重要组成部分,它允许用户根据一个或多个列对查询结果进行升序或降序排列。然而,当涉及到含有NULL值的列时,Oracle默认的行为可能并不符合所有人的预期。NULL在...

    oracle数据工程师面试题.pdf

    本资源是一个Oracle数据工程师面试题库,涵盖了多个关于Oracle数据库管理和开发的问题。下面是从文件中提取的知识点: 1. 数据类型和操作 * varchar2数据类型:varchar2是Oracle中的一种字符串数据类型,用于存储...

    大数据Oracle理论+SQL+面试问题汇总+BI理论

    《大数据Oracle理论+SQL+面试问题汇总+BI理论》是一门综合性的课程,旨在帮助大数据行业、数据库开发人员以及BI开发人员深入理解Oracle技术,并掌握关键的SQL技能和面试技巧。课程内容涵盖广泛,旨在提升专业技能,...

    Oracle SQL:经典练习题(附答案)

    10. **空值处理**:Oracle使用NULL表示未知或未定义的数据。在查询中,需要特别注意空值的影响,可以使用IS NULL或IS NOT NULL来检查字段是否为空,或者使用NVL()函数将空值替换为其他值。 通过这些练习,你可以...

    Oracle1.pdf

    在Oracle笔记的第一天,我们主要探讨了数据库的基本概念、Oracle的工作方式、简单的查询操作、数据去重、排序以及条件判断。 首先,数据库是存储和管理数据的软件,其中最常见的是RDBMS,如Oracle、MySQL、SQL ...

    Oracle基础

    Oracle基础知识课程涵盖了SQL基础知识、查询语句的编写、限制数据和排序、单行函数、Null值和空值、列别名和连接操作符、消除重复行和显示表结构等内容,是学习Oracle数据库管理系统的基础课程。

    Oracle 数据库经典练习

    正确的空值判断应使用`IS NULL`。 10. **用户表的数量统计** 要查询当前用户拥有的表数量,可以使用`USER_TABLES`视图,SQL语句如下:`SELECT COUNT(*) FROM USER_TABLES` 11. **数据类型隐式转换** 在SQL语句...

    oracle 电子书

    **注意**:空值(NULL)在比较运算中会产生特殊的行为,与任何值比较都会得到未知(NULL)的结果,因此在设计查询时应特别注意处理空值。 以上知识点覆盖了Oracle数据库的基础概念、数据类型、查询语句以及环境配置...

    马士兵oracle笔记

    4. **空值处理**:在Oracle中,任何包含空值(NULL)的数学表达式都会返回空值。 5. **字符串操作**: - `select ename||sal from emp;` 合并`ename`和`sal`列,实现字符串连接。 - `select ename||'afasjkj' ...

    ORACLE__SQL语句教学

    关于空值(NULL),在Oracle中,它表示无效、未指定或未知的数据。空值不等于空字符串或零。在数学运算中,任何涉及空值的表达式结果也会是空值。因此,你需要谨慎处理空值,特别是在进行计算时。 列的别名是重命...

    Oracle基础 SQL限定查询和排序PPT学习教案.pptx

    Oracle数据库的基础知识主要涵盖SQL语言的使用,特别是限定查询和排序。SQL,全称为Structured Query Language,是用于管理和处理数据库的标准编程语言。本教程重点讲解了如何使用SQL语句进行数据筛选和排序。 首先...

    oracle开发

    - 避免在有大量空值的列上创建索引。 - 组合索引用于一起检索的多个字段,将最常使用的列放在前面。 - 控制每个表的索引数量,一般建议不超过5个,过多的索引会影响性能。 - 及时删除不再需要的索引,重建或删除...

    提高Oracle数据库查询效率

    然而,这种写法存在明显的效率问题,主要体现在以下几个方面: 1. **字符串拼接操作**: 使用`||`进行字符串拼接会消耗较多的资源,特别是在处理大量数据时。 2. **全表扫描**: 使用`SELECT *`会导致数据库执行全表...

    oracle基础学习pdf

    - 控制流函数:如DECODE、NVL,用于条件判断和空值处理。 4. **第5章 多表连接** - 内连接(INNER JOIN):结合两个或多个表的相同记录。 - 左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN):...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    最近几年,他专注于研究Oracle内部原理以及解决性能问题。他的博客主页是 kerryosborne.oracle-guy.com。  ROBYN SANDS 思科公司的软件工程师,为思科的客户设计开发嵌入式Oracle数据库产品。从1996年开始使用...

Global site tag (gtag.js) - Google Analytics