新聞中心
這篇文章給大家介紹如何進(jìn)行sqlserver isnull在數(shù)據(jù)庫查詢中的應(yīng)用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)公司服務(wù)項目包括德江網(wǎng)站建設(shè)、德江網(wǎng)站制作、德江網(wǎng)頁制作以及德江網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,德江網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到德江省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
isnull在數(shù)據(jù)庫查詢中的應(yīng)用,特別是再語句連接的時候需要用到 比如連接時候,某個字段沒有值但是又要左連接到其他表上 就會顯示空, isnull可以判斷是否是NULL,如果是給個默認(rèn)值 isnull("字段名","默認(rèn)的數(shù)據(jù)") SqlServer中的null值與IsNull函數(shù)NULL 值的三大特點,分別是:1)NULL值不參加統(tǒng)計;2)NULL值不進(jìn)入計算表達(dá)式;3)不能與其它值進(jìn)行比較。 所謂NULL值不參加統(tǒng)計 即 在使用統(tǒng)計函數(shù)時,凡是涉及到 NULL值的都會被忽視掉(用詞可能不準(zhǔn)確),不要以為這不重要,其實在某些地方這是很重要的。而 NULL值不進(jìn)入計算也就是說在進(jìn)行數(shù)據(jù)之間的統(tǒng)計計算時,若有為 NULL值的項,那么它是不進(jìn)入即不參加計算的。這也是一個不容忽視的問題。這即使在生活中也是常見的。就好比如說一個人的獎金為NULL值(沒有錄入數(shù)據(jù)或其它的原因,不做探討),而他的基本工資總不會為 0 吧?!(如果為0,早就被T了),月末算總工資的時候把基本工資加上獎金,而若是獎金為 NULL值,總工資 = 基本工資 + 獎金(NULL),那么當(dāng)此種情況發(fā)生時,總工資 = 基本工資 ? 肯定的回答是:不等于。因為獎金為 NULL值,NULL值代表具體的什么值?都不知道。而不知道NULL值到底是多少,那么又怎么能進(jìn)行計算呢?所以總工資等于 NULL 的,也是不確定的。這樣,還有員工敢在公司嗎?萬一你來個總工資的 NULL 為真的空了,那還做什么工作啊?!這就涉及到一個強(qiáng)制轉(zhuǎn)換的問題,即把 NULL值強(qiáng)制轉(zhuǎn)換為 0 ,讓其具備業(yè)務(wù)意義。而強(qiáng)制轉(zhuǎn)換的關(guān)鍵字就是 IS ,語法即 IS NULL;這樣就可以進(jìn)行涉及 NULL值的計算了。 不過 NULL值也不是對所有的統(tǒng)計函數(shù)都有影響。一般來說。統(tǒng)計平均值(AVG)時, NULL值是一定會有影響的;統(tǒng)計最小值(MIN)時, NULL值是可能會對 MIN 有影響,在我認(rèn)為是有點隨機(jī)性質(zhì);統(tǒng)計最大值(MAX)或統(tǒng)計和(NULL)時,NULL值是對其完全沒有影響的。 所以又有一種說法是:null值不參加統(tǒng)計,不參加計算,只能用is判斷。 判斷Null值語句:select * from 表 where 字段 is null; 轉(zhuǎn)換null值語句:select 字段1,字段2,字段3,is null(字段3,'某個值') from 表; 總之,我們要認(rèn)真對待 NULL值,最好在使用統(tǒng)計函數(shù)時,都加上 IS NULL,以防意外出現(xiàn)。 sqlserver 中isnull的用法一例 數(shù)據(jù)庫中有一列記錄文章的訪問次數(shù)。我現(xiàn)在要實現(xiàn)的功能是,每刷新一次頁面。 訪問次數(shù)+1。sql語句,art_count為訪問次數(shù),int類型。 update article set art_count="(art_count+1) where art_id="3 但如果art_count為NULL,則不起作用。 如果是oracle用decode可以很容易的實現(xiàn)此功能。sqlserver中如何實現(xiàn)類似的功能呢? sqlserver中有一個函數(shù)isnull,此函數(shù)有兩個參數(shù)isnull(p1,p2)其用法是如果p1為null,則用p2代替。 此函數(shù)類似oracle的nvl。例如 SELECT AVG(ISNULL(price, $10.00)) FROM titles 受到此函數(shù)的啟發(fā)我這樣寫的sql語句 update article set art_count="(isnull(vote_count,0)+1) where art_id="3 "
關(guān)于如何進(jìn)行sqlserver isnull在數(shù)據(jù)庫查詢中的應(yīng)用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
文章標(biāo)題:如何進(jìn)行sqlserverisnull在數(shù)據(jù)庫查詢中的應(yīng)用
標(biāo)題網(wǎng)址:http://www.ef60e0e.cn/article/giogdj.html