【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

【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

如果要想让含有null的列按照自己的意愿进行排序,可做如上处理。

【mysql】:

MySQL同sqlserver,null默认最小,解决办法同sqlserver

注意:
1、null的列作为查询条件时,无论使用>/</>=/<=都是不符合条件的,只能使用isNull来判断。如下:

 

id为4的age字段为空,

执行SQL:select * from student where age >= 30; 结果如下:

执行SQL:select * from student where age < 30; 结果如下:

只有执行SQL:select * from student where age is null; 才能查询出age为null的数据。

2、对null做加、减、乘、除等运算操作,结果仍为空

刚开始student表数据如下:

执行SQL:update student set age = age + 20;

执行SQL:select * from student; 结果如下:

非null的age字段都更新为+20,而null字段依然为空。

上面的测试数据库为MySQL,Oracle也一样。SQL Server没测试过,应该也是一样的。

空值
列可以接受或拒绝空值。在数据库内 NULL 是特殊值,代表未知值的概念。NULL 不同于空字符或 0。空字符实际上是有效字符,0 是有效数字。而 NULL 只是表示该值未知这一概念。NULL 也不同于零长度字符串。如果列定义中包含 NOT NULL 子句,则不能为该行插入含有 NULL 值的行。如果列定义中仅包含 NULL 关键字,则接受 NULL 值。

在列内允许 NULL 值会增加使用该列的逻辑比较的复杂性。SQL-92 标准规定:对 NULL 值的任何比较都不取值为 TRUE 或 FALSE,而是取值为 UNKNOWN。此规定在比较运算符中引入了三值逻辑,而要正确运用该逻辑很困难。

mysql 等 null 空值排序的更多相关文章

  1. 【面试】MySQL 中NULL和空值的区别?

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 01 小木的故事 作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值.那 ...

  2. Mysql的NULL和Empty String

    本文基于Mysql5.7版本的参考资料: https://dev.mysql.com/doc/refman/5.7/en/working-with-null.html https://dev.mysq ...

  3. Mysql 单表查询-排序-分页-group by初识

    Mysql 单表查询-排序-分页-group by初识 对于select 来说, 分组聚合(((group by; aggregation), 排序 (order by** ), 分页查询 (limi ...

  4. mysql按照中文名称排序

    mysql按照中文名称排序   Sql代码  www.2cto.com   /*   Navicat MySQL Data Transfer      Source Server         : ...

  5. 空值排序(oracle和sqlserver)

    oracle认为 null 最大. 升序排列,默认情况下,null值排后面. 降序排序,默认情况下,null值排前面. 改变空值办法: (1)用nvl函数或decode函数将null转换为一特定值 替 ...

  6. 空值排序(oracle/sqlserver)

    oracle认为 null 最大. 升序排列,默认情况下,null值排后面. 降序排序,默认情况下,null值排前面. 改变空值办法: (1)用nvl函数或decode函数将null转换为一特定值 替 ...

  7. MySQL中NULL与空字符串

    一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串’  ’是相同的.这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的.NULL是指没有值,而”则表示值是存在的,只不过是个 ...

  8. mysql中的空值

    空值,即NULL,在数据库中通过is null 和is not null来查询 陷阱一:空值不一定为空 空值是一个比较特殊的字段.在MySQL数据库中,在不同的情形下,空值往往代表不同的含义.这是My ...

  9. SQL order by 语句对null值排序

    记order by 语句对null值排序: 目录 记order by 语句对null值排序: MySQL: Oracle: SqlServer: MySQL: 将null值放在最后 select * ...

随机推荐

  1. Pc移植到Mac的技术细节

    1.样式不对: 2.布局不对: 3.Mac的菜单替换PC的菜单: Mac的菜单替换PC的菜单: 1)左上角图标没有手动添加且不需要添加的情况下出现,而且点击是Help菜单内容: 2)把HelpBtn和 ...

  2. Java笔试题-线程编程方面

      Ja 线程编程方面 60.java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用? 答:有两种实现方法,分别是继承Thread类与实现R ...

  3. APP功能性测试-3

    定义:兼容测试就是指软件在特定的硬件平台,不同的应用软件之间,不同的操作系统平台上,不同的网络等环境中是否能够正常的运行的测试  (会不会产生不兼容) 兼容性测试的作用 进一步提高产品质量 和其他软件 ...

  4. Unity动态换装之Spine换装

    注:转载请注明转载,并附原链接 http://www.cnblogs.com/liaoguipeng/p/5867510.html 燕双飞情侣 一.动态换装原理 换装,无非就是对模型的网格,或者贴图进 ...

  5. Hadoop伪分布式集群

    一.HDFS伪分布式环境搭建 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时, ...

  6. 容器基础(五): 实现一个简单容器sdocker

    在前面几部分的基础上, 我们更新一下代码,实现一个简单容器 sdocker. sdocker目录构成 linux: # tree . ├── Makefile ├── cpu-test.c # 由cp ...

  7. MSSSQL 脚本收藏

    通配符 % : 表示0~n个任意字符 ­ _ : 表示单个任意字符 ­ [] :表示在括号里列出的任意字符 ­ [^]:表示任意个没有在括号中列出的字符 ­ 1.创建数据库 2. 创建架构 /**** ...

  8. Android调用Java WebSevice篇之一

    一.服务端WebService 1.服务端环境配置          MyEclipse 10.0.Tomcat6.0.JDK6.0. 2.下载axis相关jar包. 3.创建webservice. ...

  9. Redis的高级应用——数据安全

    Redis的数据保存在内存中,速度十分快.这也就意味着,一个恶意破解redis数据库密码的用户,可以在一秒钟进行更多的尝试.如果用户密码级别较低或更换频率过长,就会造成致命的危害. 1.设置用户 Re ...

  10. 【SSH】——使用ModelDriven的利与弊

    在以往的web开发中,如果要在表单显示什么内容,我们就需要在Action中提前定义好表单显示的所有属性,以及一系列的get和set方法.如果实体类的属性非常多,那么Action中也要定义相同的属性.在 ...