`

关于空值null的排序问题

    博客分类:
  • sql
阅读更多
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 //cb_ld是空值的始终放到最前

将nulls始终放在最后

select * from zl_cbqc order by cb_ld desc nulls last
分享到:
评论

相关推荐

    SQL语言中的空值问题.pdf

    引入空值后,将引发一系列问题,如空值的比较问题、空值的运算问题、空值的排序问题等。这些问题将使SQL语言的使用变得更加复杂,增加了SQL语言的使用难度。 第四部分:下一代数据库语言标准SQL 3对NULL处理方法的...

    实验七SQL的空值和空集处理.doc

    在进行 ORDER BY 排序时,如果某列存在空值,那么这些空值将被视为最小值或最大值,从而影响排序结果。 5. 使用保留字 DISTINCT 对空值的处理 DISTINCT 是一个保留字,用于删除结果集中的重复值。但是,当结果集...

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

    Oracle数据库中的空值(NULL)处理是数据库管理中常见的问题,尤其在进行复杂查询和数据分析时,理解并正确处理空值至关重要。Oracle空值并不是一个实际的值,它表示未知或者缺失的数据。以下是对Oracle空值及其解决...

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

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

    delphi DBGrid_添加点击排序功能

    当数据集中存在空值或NULL时,需要在排序前进行检查。如果尝试对NULL值进行排序,可能会引发异常。可以使用IFNULL或ISNULL函数(取决于数据库类型)将NULL值替换为可比较的值。 ```delphi Dataset.FieldByName...

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

    NULL在Oracle中被视为未知值,因此在排序时,它不会与其他任何值进行比较,而是被视为最大或最小的值,具体取决于排序的方向。这就是为什么在升序排序中,NULL值会出现在最后,而在降序排序中,NULL值会出现在最前。...

    程序实现时间排序Comparator

    标题与描述均提到了“程序实现时间排序Comparator”,这表明文章的主题是关于如何在Java编程环境中使用`Comparator`接口来实现基于时间的排序。在Java中,`Comparator`是一个功能强大的工具,允许开发者自定义对象的...

    正反都可排序函数

    3. **异常处理**:在内层循环中,如果遇到`null`值,则提前结束循环,避免了可能的空指针异常。 4. **性能考虑**:由于每次都需要将整个数组遍历一遍来找寻最小值和最大值,因此该算法的时间复杂度为O(n^2),适用于...

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

    常用的条件运算符包括关系运算符(如>、<、=等)、范围运算符BETWEEN...AND、空值判断IS NULL和IS NOT NULL,以及IN和NOT IN判断。例如,你可以查询工资低于某个值的员工,或者查找具有特定属性(如职位、姓名)的...

    sql 语句大全sql教程

    4. **处理空值排序**:在SQL中,空值(NULL)的处理需要特别注意。`ORDER BY ... NULLS FIRST`和`ORDER BY ... NULLS LAST`可以让空值出现在排序的前面或后面。在示例中,`NULLS LAST`确保空值不会打乱其他非空值的...

    SQL语句的基本查询与排序

    ### SQL语句的基本查询与排序知识点详解 #### 一、SELECT语句进行数据库查询 - **基本语法**:`SELECT column_name, column_name FROM table_name;` - 例如:`SELECT dept_id, last_name, manager_id FROM s_emp;...

    SQL 基础--SELECT 查询

    在逻辑运算中,空值有特殊的处理方式,如`AND`运算优先级是:F -> NULL -> T,而`OR`运算优先级是:T -> NULL -> F。 处理空值的函数包括NVL、NVL2和NULLIF以及COALESCE。NVL函数用于当表达式1为空时返回表达式2的...

    Oracle基础

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

    数据库介绍(二)8~11

    首先,空值处理(Null值问题)是数据库操作中不可忽视的部分。在SQL中,空值(NULL)表示未知或未定义的数据,不同于零或空字符串。处理空值时,需要注意它们在比较和计算中的特殊性。例如,任何值与NULL的比较都会...

    03-04数据库试卷+04-05试卷+标准答案1

    数据库管理系统处理空值(NULL)的原因在于现实世界的数据可能缺失,处理空值需要额外的逻辑和存储空间。DBMS主要工作包括:特殊符号或位模式表示空值,支持空值的比较和运算,以及在查询和更新时处理空值的逻辑。 ...

    第四章排序查询多表操作[总结].pdf

    主索引只能对数据库表建立,且关键字段不能为NULL或空值;候选索引不包含空字段和NULL字段;普通索引则是默认的索引类型,可以有重复的字段值。通过`tag`参数,可以创建结构复合索引,例如`index on 姓名 tag XM ...

    java集合-TreeSet的使用

    TreeSet 是 Java 中的一个集合类,它实现了 SortedSet 接口,并且使用红黑树作为底层数据结构。TreeSet 具有以下主要特点: ...不允许空值:TreeSet 不允许插入空值(null),否则会抛出 NullPointerException。

    pl/sql知识点总结入门初级

    - **空值处理**: 在SQL中,所有包含空值(`NULL`)或与空值比较的表达式的结果都是空值。例如,`NULL = NULL` 的结果不是`TRUE`也不是`FALSE`,而是`NULL`。这意味着,在进行条件判断时,需要特别注意如何处理空值。 ...

Global site tag (gtag.js) - Google Analytics