文档章节

数据库空值和NULL处理

JerrySimple
 JerrySimple
发布于 2017/09/04 15:04
字数 160
阅读 17
收藏 1

用 ISNULL(), NVL(), IFNULL() and COALESCE() 函数替换空值

MySQL中这样来写:

select IFNULL(exp1,exp2)
select IFNULL(sum(data),0)//如果sum(data)为NULL,则返回0,否则返回本身

如果exp1为NULL,则返回exp2

SQLSERVER中这样写:

select ISNULL(sum(data),0)

在ORACLE中这样写:

select NVL(sum(data),0)

对于所有数据库适用的方法这样写:

select COALESCE(sum(data),0)

COALESCE()用法:

COALESCE(value,...)  

返回第一个不是null的值,如果参数列表全是null,则返回null


SELECT COALESCE(NULL,1);
        -> 1
SELECT COALESCE(NULL,NULL,1,3) 

        ->1

SELECT COALESCE(NULL,NULL,NULL);
        -> NULL

© 著作权归作者所有

共有 人打赏支持
JerrySimple
粉丝 5
博文 54
码字总数 35126
作品 0
杭州
后端工程师
mysql的空值与NULL的区别

MySQL数据库是一个基于结构化数据的开源数据库。SQL语句是MySQL数据库中核心语言。不过在MySQL数据库中执行SQL语句,需要小心两个陷阱。   陷阱一:空值不一定为空   空值是一个比较特殊...

雍雍_yoyo
2016/04/26
48
0
数据库中罪恶的NULL

数据库中罪恶的NULL 摘要:1.Null表示Unknow; 2.聚合运算; 3.性能; 4.NO NULL! 1.Null表示Unknow: SQL基于三值逻辑true、false、unknow;Null与任何类型的值进行比较(=、>、>=、<、<=)或运算(...

吞吞吐吐的
2017/10/24
0
0
MySQL · 答疑解惑 · MySQL Sort 分页

背景 6.5号,小编在 Aliyun 的论坛中发现一位开发者提的一个问题,说 RDS 发现了一个超级大BUG,吓的小编一身冷汗 = =!! 赶紧来看看,背景是一个RDS用户创建了一张表,在一个都是NULL值的非索...

阿里云RDS-数据库内核组
2015/06/05
0
0
求一条关于对空值处理的sql语句

这是C# winform 的一个“修改”操作 窗口中10几个textbox,sql语句简化后模式大致是: update test1 set t1='"+ a.Text +"',t2='"+ b.Text +"',t3='"+ c.Text +"' where t_id=1 但是从textb...

t_kong
2013/07/31
346
1
不再迷惑,无值和NULL值

在关系型数据库的世界中,无值和NULL值的区别是什么?一直被这个问题困扰着,甚至在写TSQL脚本时,战战兢兢,如履薄冰,害怕因为自己的一知半解,挖了坑,贻害后来人,于是,本着上下求索,不...

长征6号
2014/03/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Sql语言与MySql数据库

1. 数据库简介 1. 数据库,就是存储数据的仓库,只能通过sql语言来访问,数据库也是一个文件系统。通常,MySQL、Oracle等数据库,也被称为关系型数据库,其保存的不仅仅只是数据,还包括数据...

江左煤郎
20分钟前
0
0
IDEA 取消自动import .*

打开设置 > Editor > Code Style > Java > Scheme Default > Imports ① 将 Class count to use import with "*" 改为 99 (导入同一个包的类超过这个数值自动变为 * ) ② 将 Names count ......

乔老哥
22分钟前
1
0
PostGIS学习笔记(开篇)

PostGIS事实上算是笔者开始写博客的第一篇内容。而事实上那篇博文的内容并不丰富,笔者对PostGIS的了解仍然不多,然而17年在OSGeo课程学习时对PostGIS又有了进一步了解,并逐步发现它的强大。...

胖胖雕
22分钟前
1
0
【Centos】在nginx服务器中配置php和mysql

接上一章《【Centos】利用Vultr服务器和namesilo布网》(https://my.oschina.net/u/3776619/blog/2051986),在Centos中配置好nginx,并在iptables中开启了80端口,和为了远程mysql操作方便开...

yongh701
46分钟前
3
0
flume -- fileChannel简要分析其过程

flume之event写入FileChannel doPut(event)-->获取共享锁后[log.lockShared();]-->FlumeEventPointer ptr = log.put(transactionID, event); 此处的log.put即将transactionID及event进行后续......

-九天-
58分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部