数据完整性是任何数据库系统要保证的重点。不管系统计划得有多好,空数据值的问题总是存在。本文探讨了在SQL Server中处理这些值时涉及的3个问题:计数、使用空表值以及外键处理。
用COUNT(*)处理空值 大多数集合函数都能在计算时消除空值;COUNT函数则属于例外。对包含空值的一个列使用COUNT函数,空值会从计算中消除。但假如COUNT函数使用一个星号,它就计算所有行,而不管是否存在空值。 如果希望COUNT函数对给定列的所有行(包括空值)进行计数,请使用ISNULL函数。ISNULL函数会将空值替换成有效的值。 事实上,对集合函数来说,如果空值可能导致错误结果,ISNULL函数就非常有用。记住在使用一个星号时,COUNT函数会对所有行进行计算。下例演示了空值在AVG和COUNT集合函数中的影响:
| SET NOCOUNT ONGOCREATE TABLE xCount(pkey1 INT IDENTITY NOT NULLCONSTRAINT pk_xCount PRIMARY KEY,Col1 int NULL)GOINSERT xCount (Col1) VALUES (10)GOINSERT xCount (Col1) VALUES (15)GOINSERT xCount (Col1) VALUES (20)GOINSERT xCount (Col1) VALUES (NULL)GOSELECT AVG(Col1) AvgWithoutIsNullFunctionOnCol1,AVG(ISNULL(Col1,0)) AvgWithIsNullFunctionOnCol1,COUNT(Col1) NoIsNullFunctionOnCol1 ,COUNT(ISNULL(Col1,0)) UsingIsNullFunctionOnCol1,Count(*) UsingAsteriskFROM xCountGODROP TABLE xCountGO OUTPUT:AvgWOIsNullFnctnCol1 AvgWIsNullFnctnCol1 WOIsNullFnctnCol1WIsNullFnctnCol1 UsingAsterisk ---------------- ------------- -------------- ------------15 113 4 4 |
| 【内容导航】 |
| 第1页:SQL Server数据库中空值处理的技巧 | 第2页:SQL Server数据库中空值处理的技巧 |
| 第3页:在可以为空的外键中检查数据的有效性 | |
Oracle数据库安全性管理基本措施实例解析用Oracle 9i全索引扫描快速访问数据相关资讯 SQL Server
- Build2016喜讯:Linux用户注册微软 (03月17日)
- SQL Server on Linux 理由浅析 (03月09日)
- 管理SQL Server服务的登录(启动) (02月13日)
| - 微软要抢甲骨文用户?从Oracle迁移 (03月13日)
- 微软发布面向Linux的SQL Server预 (03月08日)
- SQL Server如何修改自增列值以及相 (01月23日)
|
本文评论 查看全部评论 (0)