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

解讀在SQL Server中處理空值時(shí)涉及的三個(gè)問(wèn)題_Mssql數(shù)據(jù)庫(kù)教程

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

推薦:如何使用 SQL Server 數(shù)據(jù)庫(kù)嵌套子查詢(xún)
很多SQL Server程序員對(duì)子查詢(xún)(subqueries)的使用感到困惑,尤其對(duì)于嵌套子查詢(xún)(即子查詢(xún)中包含一個(gè)子查詢(xún))�,F(xiàn)在,就讓我們追本溯源地探究這個(gè)問(wèn)題。 有兩種子查詢(xún)類(lèi)型:標(biāo)準(zhǔn)和相關(guān)。標(biāo)準(zhǔn)子查詢(xún)執(zhí)行一次,結(jié)果反饋給父查詢(xún)。相關(guān)子查詢(xún)每行執(zhí)行一次,由

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

用COUNT(*)處理空值


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


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


事實(shí)上,對(duì)集合函數(shù)來(lái)說(shuō),如果空值可能導(dǎo)致錯(cuò)誤結(jié)果,ISNULL函數(shù)就非常有用。記住在使用一個(gè)星號(hào)時(shí),COUNT函數(shù)會(huì)對(duì)所有行進(jìn)行計(jì)算。下例演示了空值在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)一種特殊情況:在引用父表的一個(gè)表中,因?yàn)椴辉试S空值,所以“聲明引用完整性”(DRI)可能不會(huì)得到強(qiáng)制。即使父表不包含空值,在子表引用了父表主鍵約束或惟一約束的列中,也可能包含空值。


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


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

以下為引用的內(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

分享:如何在SQL Server中去除表中不可見(jiàn)字符
以下的實(shí)例為去除指定表中數(shù)據(jù)類(lèi)型是VARCHAR,CHAR,NVARCHAR的字段值中的不可見(jiàn)字符。 注釋?zhuān)捍颂幹蝗サ羟昂蟮牟豢梢?jiàn)字符,不包括中間的字符,而且沒(méi)有區(qū)分中文。 在使用前需要指定對(duì)應(yīng)要修改的表名,并且需要在對(duì)應(yīng)數(shù)據(jù)庫(kù)下執(zhí)行; SET NOCOUNT ON DECLARE @T

共2頁(yè)上一頁(yè)12下一頁(yè)
來(lái)源:模板無(wú)憂(yōu)//所屬分類(lèi):Mssql數(shù)據(jù)庫(kù)教程/更新時(shí)間:2009-07-01
相關(guān)Mssql數(shù)據(jù)庫(kù)教程