Welcome 微信登录

首页 / 数据库 / MySQL / SQL Server数据库中空值处理的技巧

数据完整性是任何数据库系统要保证的重点。不管系统计划得有多好,空数据值的问题总是存在。本文探讨了在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
  • 2
  • 3
  • 下一页
【内容导航】
第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)
表情: 姓名: 字数