mysq对存在null值的字段排序
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值的字段排序的更多相关文章
- PostgreSQL 数据库NULL值的默认排序行为与查询、索引定义规范 - nulls first\last, asc\desc
背景 在数据库中NULL值是指UNKNOWN的值,不存储任何值,在排序时,它排在有值的行前面还是后面通过语法来指定. 例如 -- 表示null排在有值行的前面 select * from tbl or ...
- Null 值对索引排序的影响案例一则
--原SQL 语句如下:select * from (select tmp_tb.*, ROWNUM row_id from (select wpid, customer_id, customer_n ...
- coalesce :返回参数(列名)中第一个非NULL值的字段值
示例 下面的语句返回值 34.(只返回一个值就算后面不为NULL也直接丢弃) SELECT COALESCE( NULL, 34, 13, 0 ) 备注 如果所有参数均为 NULL,则 COALESC ...
- Access空字符串和Null值
什么是空字符串和Null值: Microsoft Access可以区分两种类型的空值.因为在某些情况下,字段为空,可能是因为信息目前无法获得,或者字段不适用于某一特定的记录.例如,表中有一个“电话号码 ...
- 为什么不建议给MySQL设置Null值?《死磕MySQL系列 十八》
大家好,我是咔咔 不期速成,日拱一卒 之前ElasticSearch系列文章中提到了如何处理空值,若为Null则会直接报错,因为在ElasticSearch中当字段值为null时.空数组.null值数 ...
- oracle 关于null值排序
在oracle中根据字段来desc排序的话null值可能会在数据的最前面.然而有时候我们查看数据的时候并不希望能够在前面看到这些null值的排序数据. 因此我查了一下: 1.排序的时候运用nvl(). ...
- 关于null值的排序
关于空值null的排序问题 Oracle排序中NULL值处理的五种常用方法: 1.缺省Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在 ...
- mysql,sql server,oracle 唯一索引字段是否允许出现多个 null 值?
最近一个项目,涉及到sql server 2008,因为业务需求,希望建立一个唯一索引,但是发现在sql server中,唯一索引字段不能出现多个null值,下面是报错信息: CREATE UNIQU ...
- SQL Server 排序的时候使 null 值排在最后
https://www.cnblogs.com/Brambling/p/7046148.html 最近遇到一个 SQL Server 排序的问题,以前也没了解过,然后这次碰到了. 才发现 SQL Se ...
随机推荐
- fileupload的乱码解决
解决方法就是这段代码,其中item是fileupload中的FileItem String value = new String(item.getString().getBytes("ISO ...
- LeetCode: Permutations II 解题报告
Permutations II Given a collection of numbers that might contain duplicates, return all possible uni ...
- iosxcode7以后免证书真机测试方法如下
步骤比较简单,我就简单总结一下. 1. 进入xcode,菜单栏选择xcode –> preferences (快捷键 command + ,)在Accounts选项卡添加自己的Apple ID ...
- ios开发之修改 UITableview 滚动条颜色的方法
UITableview 的滚动条默认颜色是黑色的,如果 UItableview 背景也是深颜色,则滚动条会变的很不明显.您可以用下面这行代码来改变滚动条的颜色 self.tableView.indic ...
- 一款由css3和jquery实现的卡面折叠式菜单
之前已经为大家介绍了好多导航菜单.今天为大家再带来一款由css3和jquery实现的卡片折叠式菜单.当菜单关闭的时候,有三维堆叠的效果.我们一起看下效果图: 在线预览 源码下载 html代码: & ...
- BUS Matrix
ARM的BUS Matrix就是多主(Core,DMA等).多从(内部RAM,APB,外部总线等)的交联和仲裁.目的是为了提高不同主机访问不同外设情况下的带宽,另外一个就是简化Bus Master的协 ...
- jquery-ajax-php(内容点赞并进行cookie限制实现)
1.模板页html例如以下: 2.模板页的jquery里的ajax实现例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T ...
- 使用JPedal取代PDFBox
http://wanggp.iteye.com/blog/1144177 ———————————————————————————————————————————————— 之前都是使用PDFBOX0. ...
- HTML5之IndexedDB使用详解
随着firefox4正式版的推出,IndexedDB正式进入我们的视线.IndexedDB是HTML5-WebStorage的重要一环,是一种轻量级NOSQL数据库.相较之下,WebDataBase标 ...
- mssql占用80端口解决办法
services.msc