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

来源:互联网
发表时间:2012/1/17 0:39:47
责任编辑:李志喜
字体:

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) 中国学网 www.xue163.com

点击图片看大图答案

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.xue163.com true http://www.xue163.com/exploit/160/1601119.html report 4088 你真的理解T-sql中的NULL吗?,NULL不表示什么?NULL不表示空字符串,不表示0。NULL表示什么?NULL表示不知道是什么,就是说NULL的原意是不知道是什么,表示可能什么都是。NULL与?做比较大家猜一下上面的4行表达式会返回什么?,答案在下面!--Codehighlig...
最近关注
首页推荐
热门图片
最新添加资讯
24小时热门资讯
真的理解T-sql中考阅读理解真题理解t-sql中考语文阅读理解真题十步完全理解sqlt检验中的p值如何理解深入理解sql中考英语阅读理解真题sql server dbo的理解对真的理解对真的理解作文对求真的理解怎样理解真的猛士返璞归真的理解你是怎样理解选文中你怎样理解甲段中
精彩资讯
精彩推荐
热点推荐
真视界
精彩图片
社区精粹
关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
Copyright © 2004-2016 Xue163.com All Rights Reserved. 中国学网 版权所有
京ICP备10044368号-1 京公网安备11010802011102号
新闻中心 | 软件教室 | 设计大全 | 网络相关 | 英语学习 | 开发编程 | 考试中心 | 参考范文 | 管理文库 | 营销中心 | 站长之家 | IT信息中心 | 商学院 | 数码大全 | 硬件DIY | 企业服务 | 网吧在线 | 问吧 | 百科 | 硬件知识 | 本网视点 | 文库 | 手机 | 平板 | 汽车 | 游戏 | 家电 | 精彩摄影 | 时尚科技 | 现代家居 | IT女人 | 经验 | 每日新闻 | 健康养生 | 图书馆 | 猎奇 | 精彩看点 | 图库 | 新闻中心 | 软件教室 | 设计大全 | 网络相关 | 英语学习 | 开发编程 | 考试中心 | 参考范文 | 管理文库 | 营销中心 | 站长之家 | IT信息中心 | 商学院 | 数码大全 | 硬件DIY | 企业服务 | 网吧在线 | 问吧 | 百科 | 硬件知识 | 本网视点 | 文库 | 手机 | 平板 | 汽车 | 游戏 | 家电 | 精彩摄影 | 时尚科技 | 现代家居 | IT女人 | 经验 | 每日新闻 | 健康养生 | 图书馆 | 猎奇 | 精彩看点 | 图库编程 方案 信息windows方案windows answer文档机构教育文档问答中心IT编程数码信息解决方案信息中心IT科技