Mysql实现null值排在最前或最后
最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的函数,mysql并没有,所以就只好想自定义函数或者找到替换函数的方法进行改造。
oracle做数据排序的时候,有时候可以用nulls first或者nulls last将null值排在最前或者最后。
oracle方法:
null值排在最前
select * from A order by a desc null first
null值排在最后
select * from A order by a desc null last
不过迁到Mysql的话,mysql并没有提供类似函数,所以要怎么实现?下面给出解决方法:
null值排在最后,用Mysql的IF和ISNULL函数。如果为空返回1,否返回0
select * from A order by IF(ISNULL(a),1,0),a desc
null值排在最前,用Mysql的IF和ISNULL函数。如果为空返回1,否返回0
select * from A order by IF(ISNULL(a),0,1),a desc
如果mybatis里需要oracle和Mysql版本的,或者可以从后台传个数据表版本标识dbType,或者直接用mybatis的_databaseId方法。
<if test="dbType=='oracle'">
order by c.create_date desc nulls last
</if>
<if test="dbType=='mysql'">
order by IF(ISNULL(c.create_date),1,0), c.create_date desc
</if>
Mysql实现null值排在最前或最后的更多相关文章
- Mysql 排序null值 排序问题分析
mysql中null值的排序问题分析 如下表t_user: name age zhangsan 1 lisi NULL wangwu 2 www.2cto.com 执行一下sql: S ...
- SQL Server Mysql 对null值理解的不同
在说到对null值的理解主要是用unique来体现的.也是说null在unique约束看来是一个值还是多个值的问题. 还是开始实验吧. MYSQL create table t(x int ,cons ...
- MySQL的NULL值处理
我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了处理这种情况,MySQL提供了 ...
- SQL Server 排序的时候使 null 值排在最后
https://www.cnblogs.com/Brambling/p/7046148.html 最近遇到一个 SQL Server 排序的问题,以前也没了解过,然后这次碰到了. 才发现 SQL Se ...
- SQL Server排序的时候使null值排在最后
首先建一个表插入一些测试数据 create table UserInfo ( UserInfoID int not null identity(1,1) primary key, Use ...
- 为什么不建议给MySQL设置Null值?《死磕MySQL系列 十八》
大家好,我是咔咔 不期速成,日拱一卒 之前ElasticSearch系列文章中提到了如何处理空值,若为Null则会直接报错,因为在ElasticSearch中当字段值为null时.空数组.null值数 ...
- MySQL对NULL值的处理
mysql: 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了处理这种情况,M ...
- MySQL中order by中关于NULL值的排序问题
MySQL中order by 排序遇到NULL值的问题 MySQL数据库,在order by排序的时候,如果存在NULL值,那么NULL是最小的,ASC正序排序的话,NULL值是在最前面的. 如果我们 ...
- 【mysql】mysql null值
在数据表我们有时候有些表字段会为null,表示空.其实在mysql中null值是占用空间的. mysql手册如下解释 NULL columns require additional space in ...
随机推荐
- (转)Oracle定时执行计划任务
Oracle定时执行计划任务 在日常工作中,往往有些事情是需要经常重复地做的,例如每天更新业务报表.每天从数据库中提取符合条件的数据.每天将客户关系管理系统中的数据分配给员工做数据库营销……因此我们就 ...
- elementUI中表格中表单的验证
表格中的表单验证,就是在将表格放在表单中,将表格绑定的数据也放在表单中. 最重要的是要给表格中需要验证的字段动态添加prop,再给其绑定规则. <el-form :model="tab ...
- jquery操作select下拉框的多种方法(选中,取值,赋值等)
Query获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...}); //为Sel ...
- 图解Go select语句原理
Go 的select语句是一种仅能用于channl发送和接收消息的专用语句,此语句运行期间是阻塞的:当select中没有case语句的时候,会阻塞当前的groutine.所以,有人也会说select是 ...
- 移动端 去除onclick点击事件出现的背景色框
这个特效是实现在移动端点击某个地方的时候,比如说按钮或者超链接的时候,系统会默认加上一些灰色的背景和一些高亮的效果.但是有的时候我们并不想要这些效果.并且希望点击的时候实现神不知鬼不觉的感觉,,这个时 ...
- PCL安装
本文是在Ubuntu16.04下安装PCL. 按照官网的教程,有两种方法可以安装: 1.直接安装预先编译好的二进制库文件 sudo add-apt-repository ppa:v-launchpad ...
- arm linux和windows 使用tftp传文件
一.在windows 安装tftp客户端 链接:https://pan.baidu.com/s/1sxNciX337DObVmGJmCxICw 提取码:hzvj 在客户端新建一个tftp文件夹 二.关 ...
- HTML之二 -特殊标签 与数据交互标签
1.<img> 标签 © <h1> <img src="1.jpg" width="200" height="200& ...
- SpringCloud-分布式配置中心(基于SpringBoot2.X)
一.配置中心的作用:可以将多种应用的配置进行集中式的管理,将这些配置统一存放到git或svn里面存储: 二.搭建SpringCloud-Config-Server 2.1如图后续步骤勾选Config ...
- Notes : <Hands-on ML with Sklearn & TF> Chapter 6
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...