`

oracle 空值处理,排序过滤

阅读更多

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

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

 

【sqlserver】:

sqlserver 认为 null 最小。

升序排列:null 值默认排在最前。

要想排后面,则:order by case when col is null then 1 else 0 end ,col

降序排列:null 值默认排在最后。

要想排在前面,则:order   by case when col is null then 0 else 1 end , col desc

说明:
1、等价于没有任何值、是未知数。
2、NULL与0、空字符串、空格都不同。
3、对空值做加、减、乘、除等运算操作,结果仍为空。
4、NULL的处理使用NVL函数或者nvl2。
5、比较时使用关键字用“is null”和“is not null”。
6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,
   count(*)中,用nvl(列名,0)处理后再查。
7、排序时比其他数据都大(索引默认是降序排列,小→大),
   所以NULL值总是排在最后。

对null 值的比较只能是is , is not , null通过其他方式和任何值(包括null)的比较结果都是空
对null值的处理可以通过nvl(,)

select * from dual where dummy is null;
 推荐下朋友开的淘宝店筱夜宫主(http://xiaoyegongzhu.taobao.com/)DR.HU 胡博士美妆~坐在电脑旁的汉子姑娘注意脸部护理呀,做了程序媛,也要美丽啊。。。小店有优惠码:YE4450,报优惠码,抵两元券,(⊙o⊙)…
转载地址:http://www.cnblogs.com/legend_sun/archive/2009/03/20/1417429.html
分享到:
评论

相关推荐

    Oracle基本查询过滤排序示例解析

    Oracle数据库是一个强大的关系型数据库管理系统,它提供了丰富的查询功能,包括基本查询、过滤、排序等。本文将详细解析Oracle中的这些基础操作。 1. **基本查询**: - `SELECT * FROM 表名`:这是最基础的查询...

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

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

    oracle词法大全

    - SELECT语句:用于从表中检索数据,包括基本的SELECT,以及JOIN,GROUP BY,HAVING,ORDER BY等子句,用于组合多表数据,分组数据,过滤结果和排序。 - INSERT语句:用于向表中插入新的记录。 - UPDATE语句:...

    oracle经典sql案例

    这些知识点全面地覆盖了Oracle SQL的基础查询、条件过滤、模糊匹配、数据更新、空值处理以及结果排序等内容,对于Oracle数据库的初学者来说是一套非常实用的学习资料。通过这些案例题和答案,学习者可以对SQL语句有...

    马士兵oracle笔记

    以上是Oracle SQL基础操作的一部分,涵盖了用户管理、查询、条件过滤、排序和字符串处理等多个方面。理解并熟练掌握这些基本操作是使用Oracle数据库的基础。在实际应用中,还需要学习更复杂的查询技巧,如联接、子...

    oracle 电子书

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

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

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

    oracle基础学习pdf

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

    oracle 讲义

    Oracle数据库系统是企业...以上是Oracle数据库的基础知识,包括客户端工具使用、用户管理、数据查询、数据过滤、排序以及函数应用。这些内容构成了学习Oracle数据库的基础,并为更深入的学习和实际工作打下坚实的基础。

    最全的ORACLE-SQL笔记

    7. **空值处理**:在SQL中,任何包含空值的数学运算都会得到空值结果。 8. **字符串连接**:`select ename||sal from emp;`使用`||`符号将两个字段连接成一个字符串。 9. **去除重复值**:`select distinct deptno...

    Oracle11g SQL基础-实验手册.pdf

    第2章过滤和排序数据讲述了如何使用WHERE子句过滤数据,包括使用判断条件、IN条件、NOT操作符、LIKE条件进行模糊匹配以及排序查询结果。本章是数据检索部分的核心内容,涉及到数据筛选和结果展示的技巧。 第3章单行...

    oracle尚观培训文档

    - **通用函数**:如NVL、COALESCE等用于处理空值或返回特定值。 #### 四、从多表中查询数据 - **从多表中查询数据**:当需要从多个表中检索数据时,可以使用JOIN操作来关联这些表。 - **有效连接条件与笛卡儿积**...

    Oracle性能优化的基本准则总结

    8. **使用instr代替LIKE**:对于需要使用LIKE进行过滤的情况,可以考虑使用Oracle内置的instr函数,它通常比LIKE操作更快。 9. **避免使用UNION**:UNION操作会删除重复记录,这需要排序操作,可能会消耗大量资源。...

    Oracle Database 10g SQL开发指南 中文目录

    这部分涵盖了从单表到多表查询的各种技巧,包括WHERE子句的过滤功能、ORDER BY子句的排序操作,以及各种连接类型,如等值连接、不等连接、外连接和自连接。此外,还讨论了如何处理空值、使用列别名和聚合函数,以及...

    oracle手册,详解SQL用法

    如`SELECT`, `FROM`, `WHERE`, `GROUP BY`, `HAVING`, `ORDER BY`等,执行顺序是从左到右:先选择字段,然后从哪个表中选取,接着是筛选条件,之后是分组,再根据组内条件过滤(`HAVING`),最后是排序。函数的嵌套...

    Oracle help

    可以使用WHERE子句过滤数据,ORDER BY子句进行排序,GROUP BY和HAVING子句进行分组筛选。 5. **更新数据**:UPDATE语句用于修改表中的现有记录,如`UPDATE table_name SET column = new_value WHERE condition;` 6...

    oracle 学习笔记

    5. 空值null需要特别处理,在SQL中有专门的函数nvl来处理。 6. 拼接运算符“||”用于将多个字符串连接成一个字符串。 7. 文字字符串用于表示文本数据。 8. 使用DISTINCT关键字可以消除查询结果中的重复行。 9. ...

    oracle sql调优原则

    - **选择最优表名顺序**:Oracle的解析器按从右至左的顺序处理`FROM`子句中的表名。选择记录最少的表作为基础表可以提高查询效率。 - **WHERE子句的优化**:表之间的连接尽量使用主键、外键、唯一索引或索引。在`...

Global site tag (gtag.js) - Google Analytics