如果表达式包含相关操作并且其中一个(或两个)操作数含有NULL值,那么该操作结果就是NULL。因此,以下表达式:A = B、A <> B、 A < B和A > B就会返回NULL。 AND、OR和NOT中,下列真值表详细说明了NULL值的行为。T表示真实,U表示未知(NULL),F表示错误。
在这些表中,行和列表示布尔表达式算子操作值,它们之间的交叉值就是结果值。 ANDTUFORTUFNOTTTUFTTTTTFUUUFUTUUUUFFFFFTUFFT 在聚合函数AVG、SUM、MAX、MIN以及COUNT计算出结果之前,就已经排除了它们自变量的NULL值(COUNT(*……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
如果表达式包含相关操作并且其中一个(或两个)操作数含有NULL值,那么该操作结果就是NULL。因此,以下表达式:A = B、A <> B、 A < B和A > B就会返回NULL。
AND、OR和NOT中,下列真值表详细说明了NULL值的行为。T表示真实,U表示未知(NULL),F表示错误。在这些表中,行和列表示布尔表达式算子操作值,它们之间的交叉值就是结果值。
AND | T | U | F | OR | T | U | F | NOT | |||
T | T | U | F | T | T | T | T | T | F | ||
U | U | U | F | U | T | U | U | U | U | ||
F | F | F | F | F | T | U | F | F | T |
在聚合函数AVG、SUM、MAX、MIN以及COUNT计算出结果之前,就已经排除了它们自变量的NULL值(COUNT(*)函数除外)。如果一个列只包括NULL值,那么该函数就返回NULL。和非NULL值已一样,聚合函数COUNT(*)能处理所有NULL值。如果列中只包含NULL值,那么函数COUNT(DISTINCT column_name)返回的结果就是0。
一个NULL值必须是和另外一个不一样。例如在数值型数据类型中,0和NULL之间就有很大的区别。同样在字符型数据类型中,空字符串和NULL值之间也有很大的区别。
如果列表定义中明确表示包含0 ,它就会允许NULL值。换句话说,如果列的定义中包含NOT NULL,就不允许NULL值。如果用户没有在列中指定一种数据类型的NULL或NOT NULL(TIMESTAMP除外),那就赋予了下列值:
- NULL——如果SET 语句ANSI_NULL_DFLT_ON选项设定值为ON。
- NOT NULL——如果SET语句ANSI_NULL_DFLT_OFF选项设定值为ON。
如果SET语句没有被激活,列中就包含了NOT NULL的默认值。TIMESTAMP数据类型这一列只能叫NOT NULL列。
SET语句还有一个选项:CONCAT_NULL_YIELDS_ NULL。这一选项影响了NULL值场串联操作,所以你串联到NULL值的任何数据都会再次产生NULL。例如:
'San Francisco' + NULL = NULL |
总结
T-SQL的基本特征就是数据类型、谓词和函数。数据类型都是参照ANSI SQL92标准的数据类型。T-SQL支持一系列有用的系统函数。
下一章将向大家介绍与T-SQL语句相关的SQL的数据定义语言。T-SQL这部分内容包含所有用于创建、改变、迁移数据对象的语句。
翻译
相关推荐
-
SQL Server 2016新变化:内存中OLTP功能大改进
SQL Server 2016的许多功能得到改进,内存中OLTP(in-memory OLTP)也不例外,包括扩展性、性能以及扩展T-SQL用于使用和管理内存优化表的功能方面。
-
优化T-SQL提升SQL Server数据库性能
本文中提供了八种优化T-SQL代码避免SQL Server数据库性能瓶颈的技巧,我们可以据此优化数据库应用。
-
配置SQL Server数据库恢复模式的两种方法
本文我们讨论了配置SQL Server恢复模式的两种方式,用T-SQL或者SQL Server管理工具都可以修改恢复模式的设置。
-
用T-SQL在SQL Server 2012中创建用户自定义角色
SQL Server 2012中引入了两项功能,即创建用户自定义服务器角色和分配服务器级别的权限。本文为初级DBA给出了一个用户自定义服务器角色的示范用例。