`
Action-人生
  • 浏览: 97896 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

order by 语句对null字段的默认排序

阅读更多
            order by 语句对null字段的默认排序
在使用order by语句进行查询结果排序时,不同的数据库对于被排序字段数据行为null的情况,处理方式有所不同,这里我们主要考虑oracle和mysql数据库。
【Oracle 结论】
order by colum asc 时,null默认被放在最后
order by colum desc 时,null默认被放在最前
nulls first 时,强制null放在最前,不为null的按声明顺序[asc|desc]进行排序
nulls last 时,强制null放在最后,不为null的按声明顺序[asc|desc]进行排序
【MySql 结论】
order by colum asc 时,null默认被放在最前
order by colum desc 时,null默认被放在最后
ORDER BY IF(ISNULL(update_date),0,1) null被强制放在最前,不为null的按声明顺序[asc|desc]进行排序
ORDER BY IF(ISNULL(update_date),1,0) null被强制放在最后,不为null的按声明顺序[asc|desc]进行排序
注:以上结果是在oracle11g及mysql5下的测试结果。

因此当我们在order by时,为了强制说明对于null的排序顺序就必须使用到:

针对【oracle】我们就需要使用以下语法:
[sql] view plaincopy
order by order_col [asc|desc] nulls [first|last] 
而针对【mysql】我们则需要使用以下语法:
[sql] view plaincopy
order by IF(ISNULL(my_field),1,0),my_field; 
分享到:
评论

相关推荐

    MYSQL常用命令大全

    mysql> select * from MyClass order by id limit 0,2; 或者: mysql> select * from MyClass limit 0,2; 6、删除表中数据 命令:delete from 表名 where 表达式 例如:删除表 MyClass中编号为1 的记录 mysql> ...

    经典SQL语句大全

    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: 关于数据库分页: declare @start int,@...

    数据库操作语句大全(sql)

    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: 关于数据库分页: declare @start int,@...

    经典全面的SQL语句大全

    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段  14、说明:前10条记录 select top 10 * form table1 ...

    orcale常用命令

    SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper('&index_name'); 查看索引的大小 ...

    超实用sql语句

    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: 关于数据库分页: declare @start int,@...

    sql经典语句一部分

    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: 关于数据库分页: declare @start int,@...

    2009达内SQL学习笔记

    检索返回数据的顺序没有特殊意义,为了明确地排序用 SELECT 语句检索出的数据,可使用 ORDER BY 子句。 ORDER BY 子句取一个或多个列的名字。 对空值,按无穷大处理(升序中,空值排最后;降序中排最前)。 1、...

    MySQL进阶

    order by 排序字段1 排序方式1 , 排序字段2 排序方式2… 排序方式: ASC:升序,默认的。 DESC:降序。 注意: 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。 2. 聚合函数:将一列数据作为一个...

    jdbc操作文档,数据库基本操作文档集合

    select 字段名 from 表名 order by desc; 9.在……和……之间 (between and) select 字段名 from 表名 where 要判断的字段名 between 数值 and 数值; 10.in (相当于or) not in(相当于and) select 字段名 from 表名...

    数据透视表SQL语句入门

    对分公司分组统计求和数是对品种、分公司两字段分组统计求和项目再对不同品种的总就和,也就是后者包含前者。 整句语句的意思就是,将两个查询结果作为新的查询表分别命名为Hz1、Hz2,用 ”where hz1.分公司=Hz2.分...

    Sql查询MySql数据库中的表名和描述表中字段(列)信息

    下面为大家介绍利用SQL查询语句获取Mysql数据库中表的表名,表描述、字段ID、字段名、数据类型、长度、精度、是否可以为null、默认值、是否自增、是否是主键、列描述 一、查询表信息(表名/表描述) SELECT table_...

    SQL Server数据库实验_数据查询与更新_简单的单表查询.doc

    ORDER BY子句将根据查询结果集中一个或多个字段对查询结果进行排序。 三、实验设备 安装有SQL SERVER 2000的计算机。 四、实验示例 1.查找表中所有姓刘的职工的工号,姓名,部门,薪水 2.查找所有定单金额高于...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    如果有ORDER BY子句,就按照“属性名2”指定的字段进行排序。排序方式由ASC或DESC参数指定。默认的排序方式为ASC。 二、在单表上查询数据 2.1、查询所有字段 [sql] view plain copy select * from STUDENT; 2.2...

    rust-sortStringToSql:锈版。 将排序表达式转换为可在 'ORDER BY' 语句中使用的 SQL,例如 '-aired,id' -> 'aird DESC NULLS LAST, id ASC NULLS LAST'

    将字符串排序为 SQL 这是一个 rust crate,用于将“排序表达式”转换为可在“ORDER BY”中使用的 SQL 表达式。 例如, -date,id将转换为date DESC NULLS LAST, id ASC NULLS LAST 。 它可用于将 HTTP 查询参数转换...

    MySQL命令大全

    mysql> select * from MyClass order by id limit 0,2; 或者: mysql> select * from MyClass limit 0,2; 6、删除表中数据 命令:delete from 表名 where 表达式 例如:删除表 MyClass中编号为 的记录 mysql>...

    SQL语句大全 珍藏版2019-02-28

    排序 SELECT "栏位名" FROM "表格名" [WHERE "条件"] ORDER BY "栏位 名" [ASC, DESC] -- ASC 小到大 DESC 大到小 (09) 函数........................................ ............... ..............................

    程序员的SQL金典6-8

     10.7.3 ORDER BY子句  10.7.4 高级开窗函数  10.8 WITH子句与子查询 第11章 案例讲解  11.1 报表制作  11.1.1 显示制单人详细信息  11.1.2 显示销售单的详细信息  11.1.3 计算收益  11.1.4 产品销售额统计 ...

    程序员的SQL金典7-8

     10.7.3 ORDER BY子句  10.7.4 高级开窗函数  10.8 WITH子句与子查询 第11章 案例讲解  11.1 报表制作  11.1.1 显示制单人详细信息  11.1.2 显示销售单的详细信息  11.1.3 计算收益  11.1.4 产品销售额统计 ...

    程序员的SQL金典3-8

     10.7.3 ORDER BY子句  10.7.4 高级开窗函数  10.8 WITH子句与子查询 第11章 案例讲解  11.1 报表制作  11.1.1 显示制单人详细信息  11.1.2 显示销售单的详细信息  11.1.3 计算收益  11.1.4 产品销售额统计 ...

Global site tag (gtag.js) - Google Analytics