isnull在數據庫查詢中的應用,特別是再語句連接的時候需要用到
比如連接時候,某個字段沒有值但是又要左連接到其他表上 就會顯示空,
isnull可以判斷是否是NULL,如果是給個默認值
isnull("字段名","默認的數據")
SqlServer中的null值與IsNull函數
NULL 值的三大特點,分別是:1)NULL值不參加統計;2)NULL值不進入計算表達式;3)不能與其它值進行比較。
所謂NULL值不參加統計 即 在使用統計函數時,凡是涉及到 NULL值的都會被忽視掉(用詞可能不準確),不要以為這不重要,其實在某些地方這是很重要的。而 NULL值不進入計算也就是說在進行數據之間的統計計算時,若有為 NULL值的項,那么它是不進入即不參加計算的。這也是一個不容忽視的問題。這即使在生活中也是常見的。就好比如說一個人的獎金為NULL值(沒有錄入數據或其它的原因,不做探討),而他的基本工資總不會為 0 吧??。ㄈ绻麨?,早就被T了),月末算總工資的時候把基本工資加上獎金,而若是獎金為 NULL值,總工資 = 基本工資 + 獎金(NULL),那么當此種情況發生時,總工資 = 基本工資 ?
肯定的回答是:不等于。因為獎金為 NULL值,NULL值代表具體的什么值?都不知道。而不知道NULL值到底是多少,那么又怎么能進行計算呢?所以總工資等于 NULL 的,也是不確定的。這樣,還有員工敢在公司嗎?萬一你來個總工資的 NULL 為真的空了,那還做什么工作啊?!這就涉及到一個強制轉換的問題,即把 NULL值強制轉換為 0 ,讓其具備業務意義。而強制轉換的關鍵字就是 IS ,語法即 IS NULL;這樣就可以進行涉及 NULL值的計算了。
不過 NULL值也不是對所有的統計函數都有影響。一般來說。統計平均值(AVG)時, NULL值是一定會有影響的;統計最小值(MIN)時, NULL值是可能會對 MIN 有影響,在我認為是有點隨機性質;統計最大值(MAX)或統計和(NULL)時,NULL值是對其完全沒有影響的。
所以又有一種說法是:null值不參加統計,不參加計算,只能用is判斷。
判斷Null值語句:select * from 表 where 字段 is null;
轉換null值語句:select 字段1,字段2,字段3,is null(字段3,'某個值') from 表;
總之,我們要認真對待 NULL值,最好在使用統計函數時,都加上 IS NULL,以防意外出現。
sqlserver 中isnull的用法一例
數據庫中有一列記錄文章的訪問次數。我現在要實現的功能是,每刷新一次頁面。 訪問次數+1。sql語句,art_count為訪問次數,int類型。
update article set art_count="(art_count+1) where art_id="3 但如果art_count為NULL,則不起作用。
如果是oracle用decode可以很容易的實現此功能。sqlserver中如何實現類似的功能呢?
sqlserver中有一個函數isnull,此函數有兩個參數isnull(p1,p2)其用法是如果p1為null,則用p2代替。
此函數類似oracle的nvl。例如
SELECT AVG(ISNULL(price, $10.00)) FROM titles 受到此函數的啟發我這樣寫的sql語句
update article set art_count="(isnull(vote_count,0)+1) where art_id="3 "
sqlserver isnull在數據庫查詢中的應用
2019-12-11 14:25MSSQL教程網 Sql Server
isnull在數據庫查詢中的應用,特別是再語句連接的時候需要用到
延伸 · 閱讀
- 2022-03-09C# Ado.net實現讀取SQLServer數據庫存儲過程列表及參
- 2022-03-05sqlserver數據庫加密后無法使用MDF,LDF,log文件名稱被
- 2022-03-02Java中String的JdbcTemplate連接SQLServer數據庫的方法
- 2022-02-12SQL中ISNULL函數使用介紹
- 2022-01-25MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函數的
- 2022-01-20Docker部署Mysql,.Net6,Sqlserver等容器
- Sql Server
SQLServer2005 批量查詢自定義對象腳本
SQLServer2005 批量查詢自定義對象腳本,使用系統函數object_definition和系統表 sysobjects 就可以了 ...
- Sql Server
深入SQLServer中ISNULL與NULLIF的使用詳解
本篇文章是對SQLServer中ISNULL與NULLIF的使用進行了詳細分析介紹,需要的朋友參考下 ...
- Sql Server
SQL JOIN 連接詳細介紹及簡單使用實例
這篇文章主要介紹了SQL JOIN 連接詳細介紹及簡單使用實例的相關資料,需要的朋友可以參考下 ...
- Sql Server
SQL2005 存儲過程解密方法
SQL2005 存儲過程解密方法,需要的朋友可以參考下。...
- Sql Server
SQL_Server全文索引的用法解析
SQL Server全文索引相信大家都有一定的了解,下面就為您介紹SQL Server全文索引的用法及相關的語句,希望可以讓您對SQL Server全文索引能有更深的認識 ...
- Sql Server
SQLServer2005創建定時作業任務
這篇文章主要為大家介紹了SQLServer2005創建定時作業任務的詳細過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下 ...
- Sql Server
三種SQL分頁查詢的存儲過程代碼
三種SQL分頁查詢的存儲過程代碼,需要的朋友可以參考下。 ...
- Sql Server
SQLServer 數據庫的數據匯總完全解析(WITH ROLLUP)
乍一看,好像很容易,用group by好像能實現?但仔細研究下去,你又會覺得group by也是無能為力,總欠缺點什么,無從下手。那么,到底該如何做呢?別急,...