1.建立学生表,建表sql如下:

  create table student(id int,name varchar(20),age int);

2.插入几条数据,包括id字段值为null的

  insert into student values(1,'张三',10),(2,'李四',20),(3,'王五',29),(null,'赵六',30),(null,'周琦',40);

3.我们查询下,可以看到存在id字段为空的值:

4.对学生表按id排序

方法一:

   select * from student order by -id desc;

  

方法二: 

  select * from student order by isnull(id),id;

方法三:

  select * from student order by coalesce(id,999999999999);   /*(coalesce(id,999999999999)表示id为空时,返回999999999999这个值)*/

  

  coalesce:返回参数中的第一个非空表达式(从左向右)

  在mysql中没有nvl()函数, 我们用coalesce()来代替。coalesce相比nvl优点是,coalesce中参数可以有多个,而nvl()中参数就只有两个。

  当然,在oracle中也可以使用 case when....then....else......end(比较强悍,case when 后可以跟表达式)

  

  推荐使用方法二。

mysq对存在null值的字段排序的更多相关文章

  1. PostgreSQL 数据库NULL值的默认排序行为与查询、索引定义规范 - nulls first\last, asc\desc

    背景 在数据库中NULL值是指UNKNOWN的值,不存储任何值,在排序时,它排在有值的行前面还是后面通过语法来指定. 例如 -- 表示null排在有值行的前面 select * from tbl or ...

  2. Null 值对索引排序的影响案例一则

    --原SQL 语句如下:select * from (select tmp_tb.*, ROWNUM row_id from (select wpid, customer_id, customer_n ...

  3. coalesce :返回参数(列名)中第一个非NULL值的字段值

    示例 下面的语句返回值 34.(只返回一个值就算后面不为NULL也直接丢弃) SELECT COALESCE( NULL, 34, 13, 0 ) 备注 如果所有参数均为 NULL,则 COALESC ...

  4. Access空字符串和Null值

    什么是空字符串和Null值: Microsoft Access可以区分两种类型的空值.因为在某些情况下,字段为空,可能是因为信息目前无法获得,或者字段不适用于某一特定的记录.例如,表中有一个“电话号码 ...

  5. 为什么不建议给MySQL设置Null值?《死磕MySQL系列 十八》

    大家好,我是咔咔 不期速成,日拱一卒 之前ElasticSearch系列文章中提到了如何处理空值,若为Null则会直接报错,因为在ElasticSearch中当字段值为null时.空数组.null值数 ...

  6. oracle 关于null值排序

    在oracle中根据字段来desc排序的话null值可能会在数据的最前面.然而有时候我们查看数据的时候并不希望能够在前面看到这些null值的排序数据. 因此我查了一下: 1.排序的时候运用nvl(). ...

  7. 关于null值的排序

    关于空值null的排序问题   Oracle排序中NULL值处理的五种常用方法: 1.缺省Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在 ...

  8. mysql,sql server,oracle 唯一索引字段是否允许出现多个 null 值?

    最近一个项目,涉及到sql server 2008,因为业务需求,希望建立一个唯一索引,但是发现在sql server中,唯一索引字段不能出现多个null值,下面是报错信息: CREATE UNIQU ...

  9. SQL Server 排序的时候使 null 值排在最后

    https://www.cnblogs.com/Brambling/p/7046148.html 最近遇到一个 SQL Server 排序的问题,以前也没了解过,然后这次碰到了. 才发现 SQL Se ...

随机推荐

  1. string 与 char 的区别

    1.char是字符类型 2.string是字符串类型 虽然一字之差,但其本质是很大的. 1. char属于基础类型(C++),在C#中它属于值类型(Value Type).char类型的长度是固定的, ...

  2. VC6.0启动File-open和Project-add file to project崩溃的解决方法

    最近由于装了Office2010,VC6.0被整残了,file->open 和 Project->add file to project不能用,一用VC6.0就崩溃,查到是由于office ...

  3. MFC和GTK的区别

    关键技术 http://blog.csdn.net/master_max/article/details/1540204 MFC和GTK的区别?? 1. 两者都是基于面向对象设计的.尽管MFC是用C+ ...

  4. IIS安全加固

    1 删除IIS默认站点 把IIS默认安装的站点删除或禁用掉. 2 禁用不必要的Web服务扩展 打开IIS 管理器,检查是否有不必要的“Web服务扩展”,如果有则禁用掉.如下图所示: 3 IIS访问权限 ...

  5. Curator入门教程1

     简介 Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理 ...

  6. kubernetes健康检查

    有时候容器在running的状态,但是里面的服务挂了,这个就难办了,所以k8s提供了一种检查服务是否健康的方法 Liveness Probe的种类: ● ExecAction:在container中执 ...

  7. linux下tree命令详解

    linux下tree命令详解linux下的tree就比较强大了,但一般系统并不自带这个命令,需要手动下载安装:sudo apt-get install tree .文件很小,只有31K,但功能可强大了 ...

  8. Oracle编译器警告

    Compiler Warnings 编译器警告 Oracle 10g allows you to enable compile-time warnings that are useful to ide ...

  9. 使用explain分析sql语句

    sql语句优化 : sql语句的时间花在哪儿? 答: 等待时间 , 执行时间. 这两个时间并非孤立的, 如果单条语句执行的快了,对其他语句的锁定的也就少了. 所以,我们来分析如何降低执行时间. : s ...

  10. 使用特殊构造的5GB文件测试Win2012Dedup功能

    WinServer2012一个崭新的功能就是支持重复数据删除功能.为了测试这个功能的情况,特别构造了一个特殊的5GB文件用于此次测试.惯例,先说下测试环境的搭建1 使用ESXi5上的版本8的VM,安装 ...