SQL Server 2008中的T-SQL操作(二)

日期: 2008-11-02 作者:SearchSQLServer.com翻译:April 来源:TechTarget中国 英文

如果表达式包含相关操作并且其中一个(或两个)操作数含有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

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

如果表达式包含相关操作并且其中一个(或两个)操作数含有NULL值,那么该操作结果就是NULL。因此,以下表达式:A = B、A <> B、 A < B和A > B就会返回NULL。

AND、OR和NOT中,下列真值表详细说明了NULL值的行为。T表示真实,U表示未知(NULL),F表示错误。在这些表中,行和列表示布尔表达式算子操作值,它们之间的交叉值就是结果值。

ANDTUFORTUFNOT
TTUFTTTTTF
UUUFUTUUUU
FFFFFTUFFT

在聚合函数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这部分内容包含所有用于创建、改变、迁移数据对象的语句。

翻译

April
April

相关推荐