`
s_xy
  • 浏览: 20448 次
社区版块
存档分类
最新评论

oracle 排序null 值处理

阅读更多
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 employee_name
            
when null then
             
'张三'
            
else
             
employee_name
          
end)
表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
通过case语法同样可以定制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 zl_cbqc order by cb_ld nulls first
--将nulls始终放在最后
select * from zl_cbqc order by cb_ld desc nulls last
分享到:
评论

相关推荐

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

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

    oracle排序

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

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

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

    oracle处理的类型 oracle行排序

    对于包含NULL值的列,Oracle有一个默认的排序规则。在升序排列中,NULL值通常被放置在所有非NULL值之后;而在降序排列中,NULL值则会被放在最前面。但这个行为可以通过使用NULLS FIRST或NULLS LAST来改变: ```sql ...

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

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

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

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

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

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

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

    5. **逻辑函数**:如NULLIF()比较两个值,如果相等则返回NULL,NVL()和NVL2()处理NULL值。 6. **其他函数**:DECODE()根据条件返回不同值,CASE或CASE WHEN...END用于条件表达式,以及ROWNUM用于生成行号。 这堂...

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

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

    Oracle基础

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

    oracle函数大全

    Oracle函数大全涵盖了大量的内置函数,这些函数在...无论是格式化日期、转换大小写、处理NULL值还是操纵字符串,这些函数都是日常SQL查询中不可或缺的部分。通过熟练掌握这些函数,可以提高数据处理的准确性和效率。

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

    - 排序:在`ORDER BY`子句中,如果按包含NULL值的列进行排序,NULL值会被视为最大值,即在升序排序中位于最后,降序排序中位于最前。 3. 空值的运算 - NULL值与其他值的算术、比较和逻辑运算结果通常是NULL,这是...

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

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

    Oracle企业面试题集锦

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

    Oracle常用关键词和函数

    这在处理数据时避免因NULL值导致的错误或异常非常有用。NVL2(a, b, c)则稍有不同,当a为空时返回c,否则返回b,提供了更灵活的空值处理选项。 NULLIF()函数则是用来比较两个表达式是否相等,并根据结果返回NULL。...

Global site tag (gtag.js) - Google Analytics