`
fanjf
  • 浏览: 329514 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

ORACLE中null的排序问题

 
阅读更多

问题描述:
    在平时的业务处理中,经常遇到要对业务数据进行排序,并且要对null值也做相应的排序。在Oracle中,进行Order by排序时缺省认为null是最大值,所以如果是ASC升序则被排在最后,而DESC降序则排在最前。有的时候我们需要在降序排列时,同时要将null的 数据排到最后,应该如何处理。  

问题处理:
方法1:使用nvl函数
语法:Nvl(expr1, expr2)
    若EXPR1是NULL,則返回EXPR2,否則返回EXPR1.
    SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1;

    认识了NVL的语法,就可以在排序中使用,如: ORDER BY NVL(FIELD, '0')

方法2:使用其它函数,如decode,case。

方法3:nulls first或nulls last
语法:
    Nulls first:表示null值的记录将排在最前
    Nulls last:表示null值的记录将排在最后
    --null值始终放在最前面
    select * from ac01 order by aac001 asc nulls first
    --null值始终放在最后面
    select * from ac01 order by aac001 desc nulls last

    经过上述方法的比较,第三种方法比较方便。

分享到:
评论

相关推荐

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

    例如,在产品配置表(prod_provider)和产品应用表(prod_data)中,某些字段可能为空,这就涉及到如何正确处理和查询这些NULL值的问题。 当我们尝试查询NULL时,例如`SELECT LENGTH(NULL) FROM DUAL`,结果并不会...

    oracle排序

    在 Oracle 中,可以使用 NULLS FIRST 关键字对数据进行排序,将 NULL 值放在最前。例如,以下语句将对 perexl 表中的数据按照 danwei 列进行排序,将 NULL 值放在最前: SELECT * FROM perexl ORDER BY danwei ...

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

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

    oracle处理的类型 oracle行排序

    在Oracle中,对数据进行排序是日常查询和分析工作中非常常见的一种需求。 首先,我们需要理解在Oracle中进行数据排序的基本语法,即SQL的ORDER BY子句。当我们在查询语句(如SELECT)中添加ORDER BY,Oracle会根据...

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

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

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

    order by排序之null值处理方法 在对业务数据排序时候...这是四种oracle排序中NULL值处理的方法: 1、使用nvl函数 语法:Nvl(expr1, expr2)  若EXPR1是NULL,則返回EXPR2,否則返回EXPR1. SELECT NAME,NVL(TO_CHAR(CO

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

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

    oralce 中 排序问题

    在本篇中,我们将深入探讨Oracle中的排序问题,包括基本语法、性能优化以及可能遇到的挑战。 首先,我们来看SQL中的排序关键字`ORDER BY`。在Oracle SQL查询中,当你希望对查询结果进行升序(ASC)或降序(DESC)...

    oracle限定查询和排序

    通过上述介绍可以看出,在Oracle中进行限定查询与排序是非常灵活且强大的。利用不同的条件组合与排序方式,可以轻松地从海量数据中筛选出符合需求的信息,并以最直观的方式呈现出来。这对于数据分析、报表制作等工作...

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

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

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

    标题中的“MLDN魔乐科技JAVA培训_Oracle课堂6_排序、单行函数.rar”表明这是一个关于Java编程和Oracle数据库的教程,特别是涉及到排序(Sorting)和单行函数(Single-row functions)的主题。这个压缩包可能包含了一...

    Oracle数据库常见维护问题手册-精典

    ### Oracle数据库常见维护问题手册-精典 #### 数据库基础 **数据库启动方式** Oracle数据库启动通常通过`SQL*Plus`工具来进行。首先确保已经安装并配置了正确的Oracle客户端环境,然后通过以下命令来启动数据库:...

    Oracle性能问题总结

    Oracle 性能问题总结 Oracle 性能问题是数据库管理员和开发者经常遇到的一个棘手问题,本文总结了 Oracle 性能问题的解决方案,涵盖了物理模型优化、索引相关、SQL 相关、表设计和其他几个方面。 在物理模型优化...

    ORACLE中的经典SQL及函数

    此时,可以使用`NVL`函数来避免这个问题,如`salary = (salary + NVL(bonus, 0)) * 1.1`,这样即使奖金为NULL,也会将其视为0进行计算。 接下来,我们讨论单行字符串函数。这些函数对字符串数据进行操作,包括`...

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

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

    oracle通过sql实现字符串转数字oracle函数

    为了解决这个问题,可以使用`TRY_TO_NUMBER()`函数(Oracle 12c及以上版本),它在转换失败时返回NULL而不是引发错误: ```sql SELECT TRY_TO_NUMBER(str_column) AS num_column FROM your_table; ``` 有时,字符...

Global site tag (gtag.js) - Google Analytics