国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

解讀在SQL Server中處理空值時涉及的三個問題

2024-08-31 00:46:19
字體:
供稿:網(wǎng)友

這篇文章主要介紹了在SQL Server中處理空值時所涉及的3個問題:計數(shù)、使用空表值以及外鍵處理。

用COUNT(*)處理空值


大多數(shù)集合函數(shù)都能在計算時消除空值;COUNT函數(shù)則屬于例外。對包含空值的一個列使用COUNT函數(shù),空值會從計算中消除。但假如COUNT函數(shù)使用一個星號,它就計算所有行,而不管是否存在空值。


如果希望COUNT函數(shù)對給定列的所有行(包括空值)進(jìn)行計數(shù),請使用ISNULL函數(shù)。ISNULL函數(shù)會將空值替換成有效的值。


事實(shí)上,對集合函數(shù)來說,如果空值可能導(dǎo)致錯誤結(jié)果,ISNULL函數(shù)就非常有用。記住在使用一個星號時,COUNT函數(shù)會對所有行進(jìn)行計算。下例演示了空值在AVG和COUNT集合函數(shù)中的影響:


以下為引用的內(nèi)容:

SET NOCOUNT ON

GO

CREATE TABLE xCount

(pkey1 INT IDENTITY NOT NULL

CONSTRAINT pk_xCount PRIMARY KEY,

Col1 int NULL)

GO
INSERT xCount (Col1) VALUES (10)

GO

INSERT xCount (Col1) VALUES (15)

GO
INSERT xCount (Col1) VALUES (20)

GO

INSERT xCount (Col1) VALUES (NULL)

GO

SELECT AVG(Col1) AvgWithoutIsNullFunctionOnCol1,

AVG(ISNULL(Col1,0)) AvgWithIsNullFunctionOnCol1,

COUNT(Col1) NoIsNullFunctionOnCol1 ,

COUNT(ISNULL(Col1,0)) UsingIsNullFunctionOnCol1,

Count(*) UsingAsterisk

FROM xCount

GO

DROP TABLE xCount

GO

OUTPUT:

AvgWOIsNullFnctnCol1 AvgWIsNullFnctnCol1 WOIsNullFnctnCol1

WIsNullFnctnCol1 UsingAsterisk

---------------- ------------- -------------- ------------

15 11 3 4 4

恰當(dāng)使用空表值

SQL Server可能出現(xiàn)一種特殊情況:在引用父表的一個表中,因?yàn)椴辉试S空值,所以“聲明引用完整性”(DRI)可能不會得到強(qiáng)制。即使父表不包含空值,在子表引用了父表主鍵約束或惟一約束的列中,也可能包含空值。


假如來自父表的值目前未知,就不會有任何問題。例如,父表可能是一個地址表,而子表可能包含聯(lián)系信息。由于許多原因,可能暫時不知道要傳給父表的聯(lián)系地址。這是一種基于時間的問題,空值在其中或許是合適的。


如下例所示,我們創(chuàng)建父表,并在其中插入兩個值。

以下為引用的內(nèi)容:


SET NOCOUNT ON

GOCREATE TABLE Parent(pkey1 INT IDENTITY NOT NULL

CONSTRAINT pkParent PRIMARY KEY,col1 INT NULL)GOINSERT

Parent (col1) VALUES (284)GOINSERT

Parent (col1) VALUES (326)GO

共2頁上一頁12下一頁
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新平| 北海市| 太保市| 安多县| 汝南县| 开原市| 宕昌县| 漠河县| 图木舒克市| 峨眉山市| 高雄市| 镇巴县| 邻水| 柘城县| 建阳市| 宣威市| 平乡县| 白水县| 吉林市| 区。| 盈江县| 彰化县| 梅州市| 五原县| 胶南市| 繁昌县| 炉霍县| 阿坝县| 陵川县| 临汾市| 辽源市| 张掖市| 杭锦后旗| 永和县| 栾城县| 时尚| 方正县| 南皮县| 巫溪县| 阿坝| 望谟县|