`

Oracle 排序中NULL值的处理方法

阅读更多
Oracle 排序中NULL值的处理方法
http://space.itpub.net/15203236/viewspace-588848




1、缺省处理
       Oracle在Order by时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前面。

2、使用nvl函数
         nvl函数可以将输入参数为空时转换为一特定值,如nvl(employee_name,’张三’)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name。通过这个函数可以定制null的排序位置。

3、使用decode函数
        decode函数比nvl函数更强大,同样它也可以将输入参数为空时转换为一特定值,如decode(employee_name,null,’张三’, employee_name)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
    通过这个函数可以定制null的排序位置。

4、使用case语法
        Case语法是Oracle 9i后开始支持的,是一个比较灵活的语法,同样在排序中也可以应用。如:
select * from employee
order by case when employee_name is null then 0 else 1 end,employee_name
(按employee_name升序排列,并将employee_name为null的排在最前面)


5、使用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 emp order by comm nulls first
--将nulls始终放在最后面
select * from emp order by comm nulls last
分享到:
评论

相关推荐

    Oracle数据库中对null值的排序及mull与空字符串的区别

    order by排序之null值处理方法 在对业务数据排序时候,发现有些字段的记录是null值,这时排序便出现了有违我们使用习惯的数据大小顺序问题。在Oracle中规定,在Order by排序时缺省认为null是最大值,所以如果是ASC...

    oracle排序

    在 Oracle 中,可以使用 DECODE 函数对 NULL 值进行处理。例如,以下语句将对 perexl 表中的数据按照 danwei 列进行排序,并将 NULL 值转换为“单位是空”: SELECT * FROM perexl ORDER BY DECODE(danwei, NULL, '...

    对Oracle 排序中的几种常用排序的介绍

    本文将详细介绍Oracle中常见的几种排序方式,包括按拼音、部首、笔画排序,以及如何处理NULL值,使用DECODE和NVL函数,以及实现高效的分页查询。 1. **按拼音排序**:Oracle支持按照汉字的拼音进行排序,这在处理...

    oracle处理的类型 oracle行排序

    对于复杂的数据类型,如对象类型,Oracle也有相应的处理方法。比如,如果一个列包含自定义对象类型,那么可以为该列的某个属性创建索引,从而在基于该属性进行排序时提高效率。 此外,Oracle工具,如SQL Developer...

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

    适用情况: oracle 对查询结果进行排序时,被排序的栏位存在null值,且要指定NULL值排在最前面或者最后面 关键字:Nulls First;Nulls Last 默认情况:null 默认为最大值(即:asc 升序<小–>大>,null值排在最后...

    关于Oracle中NULL使用的若干实验研究.pdf

    在排序时,Oracle默认会将NULL值排在最后,除非特别指定排序规则。 总的来说,理解Oracle中NULL的使用至关重要,因为它会影响到查询性能、数据完整性和程序的正确性。开发者需要谨慎处理涉及NULL的操作,避免出现因...

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

    Oracle数据库是关系型数据库管理系统的一种,其在处理空值(NULL)方面有着独特的规则和应用方法。空值在数据库中通常表示未知、不适用或无意义的数据,它不是一个具体的数值,而是一个标识,表明某个属性的值缺失。...

    oracle最常用的函数或方法总结

    在日常的数据操作和分析中,掌握一些常用的Oracle函数和方法是至关重要的。以下是对"Oracle最常用的函数或方法总结"的详细阐述: 1. **字符串处理函数** - `CONCAT()`:用于连接两个或多个字符串。 - `SUBSTR()`...

    Oracle 中文字段进行排序的sql语句

    例如,`ORDER BY`子句中的`NULL`值处理,Oracle默认会将`NULL`值放在排序序列的最后。如果希望`NULL`值出现在排序的前面,可以使用`COALESCE`函数或`NVL`函数将其转换为一个特定值后再进行排序。 此外,当使用`IN`...

    数据库面试题4 oracle笔试 oracle例题

    - 不应该在含有NULL值的列上建立索引,因为Oracle优化器不会在where子句中使用包含`IS NULL`或`IS NOT NULL`的索引。这会导致即使列有索引,系统也会进行全表扫描。 2. **联接列**: - 在联接查询中,如果where...

    Mysql实现null值排在最前/最后的方法示例

    首先,我们需要了解MySQL中的NULL值处理规则。在MySQL中,NULL值与其他任何值的比较,包括NULL本身,都会返回false。因此,不能直接使用`= NULL`或`!= NULL`来查找NULL值。正确的做法是使用`IS NULL`或`IS NOT NULL`...

    从Sql Server迁移到 Oracle 过程中代码需要调整的地方

    1. **NULL值处理**: - SQL Server中,空字符串`''`和NULL是两个独立的值,而在Oracle中,空字符串被视为NULL。 - 在比较时,SQL Server允许`field1 = NULL`,而Oracle则要求`field1 IS NULL`。 - 使用`SET`赋值...

    Oracle 多行记录合并_连接_聚合字符串的几种方法_oracle_脚本之家1

    Oracle数据库在处理多行记录合并、连接和聚合字符串时,有多种方法,下面将详细介绍其中的几种常见技术。 1. 被集合字段范围小且固定型 这种方法适用于字段值有限且已知的情况。通过使用`DECODE`函数,我们可以为每...

    MLDN魔乐科技JAVA培训_Oracle课堂6_排序、单行函数.rar

    这堂课程可能详细讲解了如何在Java程序中与Oracle数据库交互,如何编写SQL语句进行排序操作,以及如何利用Oracle的单行函数进行数据处理。通过观看提供的视频,学习者将能够深化对Java编程和Oracle数据库查询的理解...

    Oracle企业面试题集锦

    ### Oracle中的NULL值处理 - 使用`NULL`值时应区分不同情况,如`NULL != 'something'`与`IS NULL`和`IS NOT NULL`的使用场景。 ### Oracle数据库备份策略 - 定期(如每30分钟一次)进行数据库备份,确保数据安全...

Global site tag (gtag.js) - Google Analytics