你真的理解T-sql中的NULL吗?

来源:互联网
责任编辑:鲁能
字体:

NULL不表示什么?

NULL不表示空字符串,不表示0。

NULL表示什么?

NULL表示不知道是什么,就是说NULL的原意是不知道是什么,表示可能什么都是。

NULL与?做比较大家猜一下上面的4行表达式会返回什么?,答案在下面

PRINT (Case When NULL ='Value' Then 'true' else 'false' end)

PRINT (Case When NULL!='Value' Then 'true' else 'false' end)

PRINT (Case When NULL!=NULL Then 'true' else 'false' end)

PRINT (Case When NULL=NULL Then 'true' else 'false' end) 答案

false

false

false

false

为什么会有这样的结果呢?

答案在MSDN上:

A value of NULL indicates that the value is unknown. A value of NULL is different from an empty or zero value. No two null values are equal. Comparisons between two null values, or between a NULL and any other value, return unknown because the value of each NULL is unknown.

既然如此,那我们应该怎样与NULL值做比较呢,答案是用ISNULL函数,T-sql中ISNULL函数有两个参数,第一个参数是要检查是否为NULL的表达式,第二个参数是如果要检查表达式为NULL时函数的返回值。

NULL与其他数值做运算大家猜一下上面的语句会PRINT出来什么?

答案是什么都没有,所有运算都和PRINT NULL是相同结果,结果还是NULL

PRINT NULL

PRINT 1 + NULL;

PRINT 'yukaizhao' + NULL;

DECLARE @d datetime;

SET @d = GETDATE();

PRINT @d + NULL;

NULL值与索引

如果一个列中有NULL值,那么不可以在这个列上建唯一索引,可以建立非唯一索引;但是如果一个字段有很多行有NULL值,那么在这个字段上建索引效果不佳。所以建议不在在一个频繁出现NULL值的字段上建索引(有待证实)。

NULL与排序

NULL参与排序时总是作为最小值存在,即ORDER BY COL ASC时COL为NULL的行在最前面,反之在最后面。

附注:t-sql中三个关于NULL的函数:

ISNULL(check_expression, replacement_value)

check_expression 与 replacement_value 数据类型必须一致

如果 check_expression 为 NULL,则返回 replacement_value

如果 check_expression 不为 NULL,则返回 check_expression

 

NULLIF 用于检查两个表达式,语法:

NULLIF(expression, expression)

如果两个 expression 相等,则返回 NULL,该 NULL 为第一个 expression 的数据类型

如果两个 expression 不相等,则返回第一个 expression

COALESCE()函数可以接受一系列的值,如果列表中所有项都为空(null),那么只使用一个值。然后,它将返回第一个非空值。这一技巧描述了创造性使用SQL Server 中COALESCE()函数的两种方法。


www.book1234.com true http://www.book1234.com/exploit/160/1601119.html report 51269 你真的理解T-sql中的NULL吗?,NULL不表示什么?NULL不表示空字符串,不表示0。NULL表示什么?NULL表示不知道是什么,就是说NULL的原意是不知道是什么,表示可能什么都是。NULL与?做比较大家猜一下上面的4行表达式会返回什么?,答案在下面!--Codehighlig...
  • sql server 中null
  • t-sql中update语句
  • t-sql中的变量分为
  • t-sql中 or
  • sql server 把0转null
  • sql替换为null
  • sql is null
  • sql null
  • sql null 字段
  • sql把空值转换为null
  • 娱乐时尚
    历史文化
    真视界
    旅游美食
    精彩图文
    我爱我车
    母婴健康
    关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
    Copyright © 2004-2018 book1234.com All Rights Reserved. 布客网 版权所有
    京ICP备2021021884号-4 京公网安备11010802011102号
    教育考试: 学历财经建筑 医药公考资格外语电脑作文招聘中小学留学 文档 移民 文库专栏23问答中心z资讯z资讯1资讯涨资讯涨资讯1资讯图书馆IT编程数码信息解决方案信息中心lmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmIT科技问答新闻中心软件教室设计大全网络相关英语学习开发编程考试中心参考范文管理文库营销中心站长之家IT信息中心商学院数码大全硬件DIY企业服务网吧在线百科硬件知识手机平板汽车游戏家电精彩摄影现代家居IT女人经验健康养生猎奇创业攻略教育学习历史时尚潮流最近更新涨知识