江苏七位数走势图:你真的理解T-sql中的NULL嗎?

來源:互聯網
更新時間:2018/2/9 3:35:45
責任編輯:李佳
字體:

福建体彩走势图 www.uyduz.icu

NULL不表示什么?

NULL不表示空字符串,不表示0。

NULL表示什么?

NULL表示不知道是什么,就是說NULL的原意是不知道是什么,表示可能什么都是。

NULL與?做比較大家猜一下上面的4行表達式會返回什么?,答案在下面

PRINT (Case When NULL ='Value' Then 'true' else 'false' end)

PRINT (Case When NULL!='Value' Then 'true' else 'false' end)

PRINT (Case When NULL!=NULL Then 'true' else 'false' end)

PRINT (Case When NULL=NULL Then 'true' else 'false' end) 答案

false

false

false

false

為什么會有這樣的結果呢?

答案在MSDN上:

A value of NULL indicates that the value is unknown. A value of NULL is different from an empty or zero value. No two null values are equal. Comparisons between two null values, or between a NULL and any other value, return unknown because the value of each NULL is unknown.

既然如此,那我們應該怎樣與NULL值做比較呢,答案是用ISNULL函數,T-sql中ISNULL函數有兩個參數,第一個參數是要檢查是否為NULL的表達式,第二個參數是如果要檢查表達式為NULL時函數的返回值。

NULL與其他數值做運算大家猜一下上面的語句會PRINT出來什么?

答案是什么都沒有,所有運算都和PRINT NULL是相同結果,結果還是NULL

PRINT NULL

PRINT 1 + NULL;

PRINT 'yukaizhao' + NULL;

DECLARE @d datetime;

SET @d = GETDATE();

PRINT @d + NULL;

NULL值與索引

如果一個列中有NULL值,那么不可以在這個列上建唯一索引,可以建立非唯一索引;但是如果一個字段有很多行有NULL值,那么在這個字段上建索引效果不佳。所以建議不在在一個頻繁出現NULL值的字段上建索引(有待證實)。

NULL與排序

NULL參與排序時總是作為最小值存在,即ORDER BY COL ASC時COL為NULL的行在最前面,反之在最后面。

附注:t-sql中三個關于NULL的函數:

ISNULL(check_expression, replacement_value)

check_expression 與 replacement_value 數據類型必須一致

如果 check_expression 為 NULL,則返回 replacement_value

如果 check_expression 不為 NULL,則返回 check_expression

 

NULLIF 用于檢查兩個表達式,語法:

NULLIF(expression, expression)

如果兩個 expression 相等,則返回 NULL,該 NULL 為第一個 expression 的數據類型

如果兩個 expression 不相等,則返回第一個 expression

COALESCE()函數可以接受一系列的值,如果列表中所有項都為空(null),那么只使用一個值。然后,它將返回第一個非空值。這一技巧描述了創造性使用SQL Server 中COALESCE()函數的兩種方法。

根據您訪問的內容,您可能還對以下內容感興趣,希望對您有幫助:

李宮俊的“我假裝無所謂,卻發現你是真的不在乎?!?..

答:我以為你也是喜歡我的在乎我的,我想假裝不關心你的一切來贏得你的關注,而你是真的不在乎我。

如何正確理解 SQL 中的 NULL

中的數據值),而空字符串''只能寫入字符串型字段里?;褂蠳ull值可以是"天然"就存在的,... Null在Sql語言中是一個很重要的概念,只有正確理解它才能把握好這門語言。

理解Javascript_02_理解undefined和null

解決額外的問題:null是處理引用的,為什么null處在棧內存中,而不是堆內存中 答案一樣的簡單,效率!有必要在棧中分配一塊額外的內存去指向堆中的null嗎! 額外的收獲: 當我們...

MySQL中對于NULL值的理解和使用教程

在SQL中,NULL值在于任何其他值甚至NULL值比較時總是假的(FALSE)。包含NULL的... 當使用GROUP BY時,所有的NULL值被認為是相等的。 為了有助于NULL的處理,你能使...

java中的 null+null

在String c=a+b的時候a與b都被理解為"null"而不是空了 如果你寫成 String a=null; String b=a+""; 那么a將被當作空b將被當作字符串"null"

java中的 null+null

} } 這段代碼結果會輸出aaa 在String c=a+b的時候a與b都被理解為"null"而不是空了 如果你寫成 String a=null; String b=a+""; 那么a將被當作空b將被...

javascript中的undefined 與 null 的區別 補充篇

( abc == undefined )的語句,將得到類似上圖中的第二個錯誤提示。 在實際使用中,如果... 這個真的不好理解 好象是為了兼容以前的瀏覽器(IE4.0才有undefined吧)而把null和und...

GROUP BY ROLLUP (A,B,C) HAVING A IS NOT NULL AND D...

GROUP BY子句里面的ROLLUP,此選項對GROUP BY 子句中的列順序敏感,它只返回第... 理解為GROUP BY子句的where子句,起篩選作用的,就是先分組,然后只取A IS NOT NUL...

null是定義在《stdio.h》文件中的符號常量 這句話怎么理解??

有很多的頭文件都定義了NULL,你在NULL下點擊到定義,打開看看是在哪個頭文件下定... 這些頭文件是不需要在源文件中定義的~ 以上都是個人理解

SQL中IS NOT NULL與!=NULL是等價的嗎

樓上兩位說 != null 不能使用的,你們動手試過嗎,你們確定你真的理解他們的用法?不要誤導觀眾! 默認情況下,推薦使用 IS NOT NULL去判斷,因為SQL默認情況下對!= Null的判斷...

哪位能解釋一下JAVA中的 null, 并且對象、String等等,都可以賦...

Object obj = null;這條語句不是對象賦值為null,而是定義一個Object的引用obj,不指向(引用)任何對象(內存地址)。String s = new String();這條語句是創建一個String的引用s,指向一...


www.xue163.net true //www.xue163.net/exploit/160/1601119.html report 18688 你真的理解T-sql中的NULL嗎?,NULL不表示什么?NULL不表示空字符串,不表示0。NULL表示什么?NULL表示不知道是什么,就是說NULL的原意是不知道是什么,表示可能什么都是。NULL與?做比較大家猜一下上面的4行表達式會返回什么?,答案在下面!--Codehighlig...
網友評論
最新添加資訊
    24小時熱門資訊
    娛樂時尚
      科技資訊
      歷史文化
        真視界
        旅游美食
        精彩圖文
        我愛我車
        母嬰健康
        關于本站 | 廣告服務 | 手機版 | 商務合作 | 免責申明 | 招聘信息 | 聯系我們
        Copyright © 2004-2018 xue163.net All Rights Reserved. 學網 版權所有
        京ICP備10044368號-1 京公網安備11010802011102號
        教育考試: 學歷財經建筑 醫藥公考資格外語電腦作文招聘中小學留學 文檔 移民 文庫專欄23問答中心問答圖書館知識IT編程數碼信息解決方案信息中心IT科技topzttophottopsctopnew問答新聞中心軟件教室設計大全網絡相關英語學習開發編程考試中心參考范文管理文庫營銷中心站長之家IT信息中心商學院數碼大全硬件DIY企業服務網吧在線百科硬件知識手機平板汽車游戲家電精彩攝影現代家居IT女人經驗健康養生獵奇創業攻略教育學習歷史時尚潮流福建体彩走势图漲知識