佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > sqlserver isnull在數(shù)據(jù)庫查詢中的應用

sqlserver isnull在數(shù)據(jù)庫查詢中的應用

熱門標簽:AI電銷 鐵路電話系統(tǒng) 服務外包 網(wǎng)站排名優(yōu)化 Linux服務器 呼叫中心市場需求 百度競價排名 地方門戶網(wǎng)站
isnull在數(shù)據(jù)庫查詢中的應用,特別是再語句連接的時候需要用到

比如連接時候,某個字段沒有值但是又要左連接到其他表上 就會顯示空,

isnull可以判斷是否是NULL,如果是給個默認值

isnull("字段名","默認的數(shù)據(jù)")

SqlServer中的null值與IsNull函數(shù)

NULL 值的三大特點,分別是:1)NULL值不參加統(tǒng)計;2)NULL值不進入計算表達式;3)不能與其它值進行比較。

所謂NULL值不參加統(tǒng)計 即 在使用統(tǒng)計函數(shù)時,凡是涉及到 NULL值的都會被忽視掉(用詞可能不準確),不要以為這不重要,其實在某些地方這是很重要的。而 NULL值不進入計算也就是說在進行數(shù)據(jù)之間的統(tǒng)計計算時,若有為 NULL值的項,那么它是不進入即不參加計算的。這也是一個不容忽視的問題。這即使在生活中也是常見的。就好比如說一個人的獎金為NULL值(沒有錄入數(shù)據(jù)或其它的原因,不做探討),而他的基本工資總不會為 0 吧?!(如果為0,早就被T了),月末算總工資的時候把基本工資加上獎金,而若是獎金為 NULL值,總工資 = 基本工資 + 獎金(NULL),那么當此種情況發(fā)生時,總工資 = 基本工資 ?

肯定的回答是:不等于。因為獎金為 NULL值,NULL值代表具體的什么值?都不知道。而不知道NULL值到底是多少,那么又怎么能進行計算呢?所以總工資等于 NULL 的,也是不確定的。這樣,還有員工敢在公司嗎?萬一你來個總工資的 NULL 為真的空了,那還做什么工作???!這就涉及到一個強制轉(zhuǎn)換的問題,即把 NULL值強制轉(zhuǎn)換為 0 ,讓其具備業(yè)務意義。而強制轉(zhuǎn)換的關(guān)鍵字就是 IS ,語法即 IS NULL;這樣就可以進行涉及 NULL值的計算了。

不過 NULL值也不是對所有的統(tǒng)計函數(shù)都有影響。一般來說。統(tǒng)計平均值(AVG)時, NULL值是一定會有影響的;統(tǒng)計最小值(MIN)時, NULL值是可能會對 MIN 有影響,在我認為是有點隨機性質(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 表;

總之,我們要認真對待 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 "
您可能感興趣的文章:
  • sqlserver 三種分頁方式性能比較[圖文]
  • MySql中的IFNULL、NULLIF和ISNULL用法詳解
  • 在SQL Server中使用ISNULL執(zhí)行空值判斷查詢
  • SQLSERVER ISNULL 函數(shù)與判斷值是否為空的sql語句
  • 淺談SQLServer的ISNULL函數(shù)與Mysql的IFNULL函數(shù)用法詳解
  • 深入SQLServer中ISNULL與NULLIF的使用詳解
  • SQL中的ISNULL函數(shù)使用介紹
  • ASP 空字符串、IsNull、IsEmpty區(qū)別分析
  • asp.net String.IsNullOrEmpty 方法
  • VBS教程:函數(shù)-IsNull 函數(shù)
  • 淺析SQL Server的分頁方式 ISNULL與COALESCE性能比較

標簽:衡水 崇左 銅川 蘭州 湘潭 湖南 仙桃 黃山

巨人網(wǎng)絡通訊聲明:本文標題《sqlserver isnull在數(shù)據(jù)庫查詢中的應用》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    敦煌市| 白城市| 湘乡市| 吴江市| 平潭县| 兴隆县| 维西| 四川省| 深泽县| 麻栗坡县| 醴陵市| 苏尼特右旗| 台北县| 麻城市| 外汇| 金溪县| 汽车| 繁峙县| 永城市| 元朗区| 收藏| 射阳县| 漠河县| 胶州市| 都江堰市| 无极县| 富民县| 佛学| 同德县| 阿勒泰市| 盈江县| 杨浦区| 林芝县| 兴国县| 西城区| 贡觉县| 东乡| 玉溪市| 阿鲁科尔沁旗| 克拉玛依市| 鲁山县|