首页 > 数据库技术 > 详细

T-sql isnull函数介绍

时间:2015-06-02 01:35:05      阅读:262      评论:0      收藏:0      [点我收藏+]

今天在给同事调取数据的时候,同事反馈说数据偏少,我仔细检查,发现sql语句条件都正确,逻辑没哪里不对,最后经过仔细排查,才发现问题出在null字段上

表中有一列是允许为null值,比如查询名字不为测试的商户名字的记录

我的查询为 name<>‘测试‘为10行,

select * from test name<>‘测试‘

检查数据 name=‘测试‘ 有90行, 总记录120行,有20行既不满足<>‘测试‘,也不=‘测试‘,这20行记录name都是null

如下图所示,一看便明白:

技术分享

 

 

在数据表行记录中,数据列中经常会有记录为null,其实null值表示的是未知数据,即空,表示什么也没有,

但不是我们所说的‘‘,也不是表示数值0,而是表示未知数据。可以理解未知数据的点位符

null值的处理方式与其他值不同

null不能参与比较,因为是未知值,所以不能用在比较运算符后面,

name<>null,name=null,都是不正确的,

null值不能比较运算符,那怎么查询列值是null的呢,

我们必须使用 IS NULL 和 IS NOT NULL 操作符,

如查询名字为null 的用户

--记录为null
SELECT COUNT(1) null记录数 FROM dbo.Users u WHERE u .Name IS NULL

查询名字不等于‘aaaa‘的用户记录:

--正确的名字不等于‘aaaa‘
SELECT * FROM dbo.Users u WHERE ISNULL(u.Name,‘‘)<>aaaa

实际上这里已经用到了isnull函数了,

isnull函数有两个参数,第一参数是要计算的表达式,第二个是当第一个表达式值为空时的替代值。

 

T-sql isnull函数介绍

原文:http://www.cnblogs.com/langhua/p/4545258.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!