当前所在位置: 首页 > 数码科技 > 正文

在SQLServer中处理空值时涉及的三个问题

2024-01-24 本站作者 【 字体:

用COUNT*处理空值

大多数集合函数都能在计算时消除空值;COUNT函数则属于例外。对包含空值的一个列使用COUNT函数,空值会从计算中消除。但假如COUNT函数使用一个星号,它就计算所有行,而不管是否存在空值。

如果希望COUNT函数对给定列的所有行包括空值进行计数,请使用ISNULL函数。ISNULL函数会将空值替换成有效的值。

事实上,对集合函数来说,如果空值可能导致错误结果,ISNULL函数就非常有用。记住在使用一个星号时,COUNT函数会对所有行进行计算。下例演示了空值在和COUNT集合函数中的影响:

恰当使用空表值

SQL Server可能出现一种特殊情况:在引用父表的一个表中,因为不允许空值,所以"声明引用完整性"DRI可能不会得到强制。即使父表不包含空值,在子表引用了父表主键约束或惟一约束的列中,也可能包含空值。

假如来自父表的值目前未知,就不会有任何问题。例如,父表可能是一个地址表,而子表可能包含联系信息。由于许多原因,可能暂时不知道要传给父表的联系地址。这是一种基于时间的问题,空值在其中或许是合适的。

如下例所示,我们创建父表,并在其中插入两个值。

以下代码则创建子表,并在引用父表的列中插入一个空值。

但在以下代码中,要同时从父表和子表选择值。虽然父表不包含空值,但在子表引用了父表的那个列中,将允许一个空值。

SELECT * FROM ChildGOSELECT * FROM ParentGODROP TABLE Child, ParentGO

在可以为空的外键中检查数据的有效性

如果由两个列共同组成主键,而且一个子表将主键作为可为空值的外键来继承,就可能得到错误的数据。可在一个外键列中插入有效的值,但在另一个外键列中插入空值。然后,可添加一个数据表检查约束,在可为空的外键中检查数据的有效性。

任何多列外键都可能遇到同样的问题。所以,你需要添加一个检查约束来检测异常。最初,检查约束将检查构成外键的所有列中可能为空的值。检查约束还要检查这些列中不能为空的值。如两个检查都通过,问题就解决了。

以下示范脚本展示了这样的一个异常,以及如何用检查约束来纠正它。

在SQLServer中处理空值时涉及的三个问题
阅读全文
相关推荐

去云南旅游5天最佳路线 云南怎么玩路线比较好

去云南旅游5天最佳路线 云南怎么玩路线比较好
第一天,坐飞机或者是高铁抵达昆明,上午参观云南省博物馆,下午游览昆明动物园,观赏各种珍稀动物。然后可以去翠湖公园逛逛,感受昆明的悠闲氛围。晚上安排在昆明的美食街品尝地道的云南美食。

2024云南旅游必去的景点 云南旅游攻略必玩景点

2024云南旅游必去的景点 云南旅游攻略必玩景点
泸沽湖、丽江古城、大理古城、玉龙雪山、束河古镇、普达措国家公园、双廊古镇、滇池、噶丹·松赞林寺、蓝月谷、喜洲古镇、中国科学院西双版纳热带植物园、苍山、石林风景区、香格里拉虎跳峡景区、崇圣寺三塔文化旅游区、和顺古镇、云南民族村、元阳哈尼梯田、腾冲热海风景区等。

黑龙江雪乡旅游攻略及价格 雪乡在黑龙江哪个地方

黑龙江雪乡旅游攻略及价格 雪乡在黑龙江哪个地方
如果想自由行深度游玩雪乡,可以自驾游。因为有雪乡风景区部分景点,离雪乡村中心还有段距离,开车前往较为方便。为方便游客、司导人员进入景区,在哈尔滨出发可行驶G10高速转至海林市S207省道,转G333国道进入雪乡景区,或行驶G1211高速,转S316省道进入雪乡景区。

2024最适合过春节的旅游城市 春节去哪个城市旅游好

2024最适合过春节的旅游城市 春节去哪个城市旅游好
1、北京,作为中国的首都,北京拥有丰富的历史文化和庙会活动。游客可以游览故宫、长城等著名景点,体验传统的年俗活动,如贴春联、包饺子等等,感受浓厚的年味。

2024年春节哪里旅游最好 春节旅游攻略国内推荐

2024年春节哪里旅游最好 春节旅游攻略国内推荐
1、三亚,在冬天,即使地球其他角落寒流来袭,仍可以穿着夏装、沙滩鞋在阳光充沛的海滩悠闲漫步,浸润在暖暖的海水中,吃着热带水果,享受着天涯海角的浪漫。海南三亚海水清澈,沙白如絮,清洁柔软;岸边绿树成荫,空气清新。春节,我们叫上家人,约上朋友,一起到海南三亚去旅游。这里会给你碧海蓝天的浪漫,这里会给你阳光沙滩的温暖,这里会给你热带雨林的惊喜。

太原市旅游攻略 太原最值得去的地方

太原市旅游攻略 太原最值得去的地方
太原经典1日游:太原第一站先游览山西省博物馆感受5000年的中华文明史,了解感受夏商踪迹、晋国霸业、佛风遗韵、明清晋商文化;然后可以去太原最大的的迎泽公园感受当地人民的生活气息,再去太原食品街寻找美食。

密云古北水镇旅游攻略 密云古北水镇一日游攻略

密云古北水镇旅游攻略 密云古北水镇一日游攻略
古北水镇位于密云东北侧,是一处在古村基础上改造重建的古镇景区。古镇依水而建,即有北方古镇的大气威严,也不失江南水乡的特色,可以泡温泉、品尝美食、爬司马台长城等,是京郊地区休闲度假不错的选择。古镇内不通车,非常适合步行游玩。

银川沙湖旅游攻略 银川沙湖几月份去最好

银川沙湖旅游攻略 银川沙湖几月份去最好
宁夏沙湖旅游景区地处贺兰山下、黄河金岸,20余平方公里沙漠与40余平方公里水域毗邻而居,拥有万亩水域、两千亩芦苇、千亩荷池、五千亩沙丘,这里栖居着白鹤、黑鹤、天鹅等十数种珍鸟奇禽,被誉为“世间少有”的文化旅游胜地。

黔东南旅游攻略 贵州黔东南旅游攻略自由行

黔东南旅游攻略 贵州黔东南旅游攻略自由行
黔东南苗族侗族自治州位于贵州省东南部,地处云贵高原东南边缘,东邻湖南,南接广西,境内居住着苗、侗、汉、布依、水等20多个民族,民族风情非常浓郁。这里有世界上最大的苗寨和最大的侗寨,有独特的吊脚楼、风雨桥、鼓楼。秋季是到黔东南旅行的最好时间,雨水不会像夏季般频繁,气温不会像冬季时寒冷,温度适宜。

青海湖旅游住宿攻略 青海湖环湖住宿攻略

青海湖旅游住宿攻略 青海湖环湖住宿攻略
由于青海湖距离西宁较远,所以建议在青海湖周边过夜,以便欣赏日出日落等美景。目前青海湖周边住宿的选择地方主要有以下几个:一、二郎剑景区附近:这里是青海湖唯一的官方景区,也是观看日出最佳的地点之一。这里有多家酒店和民宿可供选择,价格根据季节和设施不同而不同,旺季每晚约200-500元,淡季每晚约100-300元。
本文Tag