2013-02-18 58 views
0

我知道這可能是一個新手問題,但我想知道爲什麼我有時會在結果中得到NULL,有時它只是完全空白 - 它們不應該都是null嗎?在SMSS中查詢結果中NULL和Nothing之間有什麼區別?

enter image description here

+4

「一無所有」你把它是一個**空字符串**('「」') - 但是這仍然一個**值**(而'NULL'沒有值) – 2013-02-18 16:04:24

+0

我一直認爲NULL爲「沒有提供過任何值」,因爲沒有任何值可能在某一點上,但用戶現在已將其設置爲空集「」。我也沒有用.net術語來看,因爲一個對象的實例沒有被實例化。它不是空的;沒什麼。 – xQbert 2013-02-18 16:10:01

+0

在編寫包含含有'NULL'值的列的子句的查詢時要小心。 'SELECT * FROM sometable WHERE LENGTH(string)<20;'不會返回字符串爲'NULL'的行。 – DMK 2013-02-18 16:10:56

回答

2

正如你所看到的,Remarks柱具有無背景色黃這表明它不是NULL。 (NULL值了。

它包含一個空字符串''或許空間),這是從NULL不同,因爲空字符串是設置爲空,而NULL未設置(沒有)。

1

在Oracle中,空字符串被視爲NULL。 SQL Server將其視爲字符串值。

的主要區別是在SQL Server中,你可以從一些返回結果一樣

select * from mytable where myfield = '' 
相關問題