日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

談SQL Server的空值處理策略_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:怎樣用VB存取SQL Server中的圖像數(shù)據(jù)
本文介紹MIS SQL Server對圖像數(shù)據(jù)的存儲機(jī)制和存取方法。針對VB開發(fā)工具,介紹了一種通過ADO Field 對象的GetChunk 方法和AppendChunk 方法來存取MIS SQL Server中的圖像數(shù)據(jù)的方法。 在一個完善的醫(yī)院信息MIS中,圖像數(shù)據(jù)的存取是必不可少的,比如X光片、C

數(shù)據(jù)完整性是任何數(shù)據(jù)庫系統(tǒng)要保證的重點。不管系統(tǒng)計劃得有多好,空數(shù)據(jù)值的問題總是存在。本文探討了在SQL Server中處理這些值時涉及的3個問題:計數(shù)、使用空表值以及外鍵處理。

用COUNT(*)處理空值

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

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

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

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)一種特殊情況:在引用父表的一個表中,因為不允許空值,所以“聲明引用完整性”(DRI)可能不會得到強(qiáng)制。即使父表不包含空值,在子表引用了父表主鍵約束或惟一約束的列中,也可能包含空值。

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

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

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

以下代碼則創(chuàng)建子表,并在引用父表的列中插入一個空值。

CREATE TABLE Child

(pkey1 INT IDENTITYCONSTRAINT pkChild

PRIMARY KEY,Parentpkey1 INT NULLCONSTRAINT fkChildParent

FOREIGN KEYREFERENCES Parent(pkey1),col1 INT NULL)

GOINSERT Child (Parentpkey1, col1) VALUES (null,2)GO

但在以下代碼中,要同時從父表和子表選擇值。雖然父表不包含空值,但在子表引用了父表的那個列中,將允許一個空值。

然后丟棄所有表,清除這個演示所用的數(shù)據(jù)庫對象。

SELECT * FROM ChildGOSELECT * FROM ParentGODROP TABLE Child, ParentGO

分享:淺談SQL Server數(shù)據(jù)倉庫相關(guān)概念及構(gòu)建流程
基本概念: 1.多維數(shù)據(jù)集:多維數(shù)據(jù)集是聯(lián)機(jī)分析處理 (OLAP) 中的主要對象,是一項可對數(shù)據(jù)倉庫中的數(shù)據(jù)進(jìn)行快速訪問的技術(shù)。多維數(shù)據(jù)集是一個數(shù)據(jù)集合,通常從數(shù)據(jù)倉庫的子集構(gòu)造,并組織和匯總成一個由一組維度和度量值定義的多維結(jié)構(gòu)。 2.維度:是多維數(shù)

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2009-06-25
相關(guān)Mssql數(shù)據(jù)庫教程