T-sql isnull函数介绍
今天在给同事调取数据的时候,同事反馈说数据偏少,我仔细检查,发现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函数介绍的更多相关文章
- (转)SQL中的ISNULL函数介绍
SQL中有多种多样的函数,下面将为您介绍SQL中的ISNULL函数,包括其语法.注释.返回类型等,供您参考,希望对您学习SQL能够有所帮助. ISNULL 使用指定的替换值替换 NULL. 语法ISN ...
- (转)SQL中的ISNULL函数介绍
SQL中有多种多样的函数,下面将为您介绍SQL中的ISNULL函数,包括其语法.注释.返回类型等,供您参考,希望对您学习SQL能够有所帮助. ISNULL 使用指定的替换值替换 NULL. 语法ISN ...
- SQL中的ISNULL函数介绍
SQL中有多种多样的函数,下面将为您介绍SQL中的ISNULL函数,包括其语法.注释.返回类型等,供您参考,希望对您学习SQL能够有所帮助. ISNULL 使用指定的替换值替换 NULL. 语法ISN ...
- SQL ISNULL 函数
sql 中 NULL 值的处理:微软的 ISNULL() 函数用于规定如何处理 NULL 值.NVL(), IFNULL() 和 COALESCE() 函数也可以达到相同的结果.语法ISNULL ( ...
- oracle 常用sql字符函数介绍
常用字符函数介绍 1.ascii 返回与指定的字符对应的十进制数: SQL>select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') ...
- SQL IsNull函数详解
IsNull,计算机语言函数,意思是返回 Boolean 值,指明表达式是否不包含任何有效数据 (Null). ISNULL 使用指定的替换值替换 NULL. IS NULL经常用于组成一个逻辑表达式 ...
- SQL isnull函数
select * from emp;
- sql server函数(isnull,charindex,cast,自定义函数)
SELECT charindex( CAST ( dbo.ufn_IsNullOrEmpty ('109722A3-622D-4FD4-A060-0287C933A89E', a.OUID) AS V ...
- 第五篇、常用的SQL语句和函数介绍
简介: 在使用到sqlite3的时候,常常需要写一些SQL语句,现将常用到的部分语句稍微总结以下,由于个人习惯,关键字用大写. 附: /*简单约束*/ CREATE TABLE IF NOT EXIS ...
随机推荐
- 【BFS】Tester Program
[poj1024]Tester Program Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 2760 Accepted ...
- 【状压dp】CDOJ1608 暑假集训
裸的状压的话,很显然……但有一个强大的优化. 就是在枚举决策的时候,固定第一个空位置.可以证明,这样状态数没有减少,但是降低了很多重复访问. 因为你在枚举的时候,总是可以划分为包含第一个空位置的3个位 ...
- Problem G: 零起点学算法106——首字母变大写
#include<stdio.h> #include<string.h> int main(void) { ]; int i,k; while(gets(a)!=NULL) { ...
- github之怎么上传本地项目
github之怎么上传本地项目 以前都是在自己磁盘上的某个目录下,然后打开git bash,来进行把本地的一些文件推到远程github上. 之前的方法步骤: 1.在github上new一个库,然后gi ...
- [转]Windows7下如何在MyEclipse更改JSP默认编码
分步阅读 一般情况下,用MyEclipse创建Web项目,在WebRoot目录下新建JSP页面,页面的编码格式是:ISO-8859-1,而这个编码格式不 可以解决多种语言文本显示问题,特别是中文,容易 ...
- openstack-cinder-netapp
https://communities.netapp.com/docs/DOC-31749 http://docs.openstack.org/havana/config-reference/cont ...
- Android从开源到碎片化 开发者叛离的真相
Android从诞生开始就受到热捧,并日益普及.它有别于以往的手机及移动终端操作系统,其独具的开源性.系统廉价性和提供给第三方大自由度的创新空间,以及不受硬件约束的优势,获得了广大开放社群的支持.但是 ...
- Java集合类理解
深入Java集合学习系列:http://zhangshixi.iteye.com/blog/674856 http://blog.csdn.net/shf4715/article/details/47 ...
- C/C++ 宏定义中#、##、#@的区别
#表示:对应变量字符串化 ##表示:把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符 连接符#@:它将单字符标记符变换为单字符,即加单引号.例如: #define B(x) #@x ...
- zend 环境
js智能提示: 安装APTANA组件,最新3.0版本 安装地址:http://download.aptana.com/studio3/plugin/install Aptana 3 不能装 2 的 J ...