sql語句null
⑴ 關於sql語句null的用法
是這樣的,與null比較的結果是null(不是true,也不是false)。
關於null,可以參照以下理解。
條件為null時不表示結果;
true and null的結果是null;false and null的結果是false;null and null的結果是null;(與先後順序無關)
true or null的結果是true;false or null的結果是null;null or null的結果是null。(與先後順序無關)
⑵ 這句sql里的null是什麼意思
你好,向你講解一下SQL中null空值:
在
SQL
語句中,
NULL
值與字元列中的空格,
數字中的零,
字元列中的
NULL
ASCII
字元都不相同。
在sql中null是一種數據類型,null不能與任何列或者變數使用"="或者"!="去比較,判斷某列或者變數為null是只能用
is
(not)
null
去判斷這樣他的返回值才是true或者false。
一、關於null的運用
1、NULL值與索引
如果一個列中有NULL值,那麼不可以在這個列上建唯一索引,可以建立非唯一索引;但是如果一個欄位有很多行有NULL值,那麼在這個欄位上建索引效果不佳。所以建議不在在一個頻繁出現NULL值的欄位上建索引。
2、NULL與排序
NULL參與排序時總是作為最小值存在,即ORDER
BY
COL
ASC時COL為NULL的行在最前面,反之在最後面。
二、IsNull的用法:使用指定的替換值替換
NULL。
語法
ISNULL
(
check_expression
,
replacement_value
)
參數
check_expression
將被檢查是否為
NULL的表達式。check_expression
可以是任何類型的。
replacement_value
在
check_expression
為
NULL時將返回的表達式。replacement_value
必須與
check_expresssion
具有相同的類型。
返回類型
返回與
check_expression
相同的類型。
如果文字
NULL
作為
check_expression
提供,則返回
replacement_value
的數據類型。
如果文字
NULL
作為
check_expression
提供並且未提供
replacement_value,則返回
int。
注釋
如果
check_expression
不為
NULL,則返回它的值;否則,在將
replacement_value
隱式轉換為
check_expression
的類型(如果這兩個類型不同)後,則返回前者。
如果
replacement_value
比
check_expression
長,則可以截斷
replacement_value。
注意:
請勿使用
ISNULL
查找
NULL
值。
而應使用
IS
NULL。
參考資料:
http://www.studyofnet.com/news/111.html
希望以上的回答對你有幫助!
⑶ sql的where條件中是否null相關條件怎麼寫
sql的where條件判斷值是否為null,可以直接與NULL進行比較。
例:
select*fromawheree=null;--檢索表a中列e為NULL的數據
select*fromawheree<>null;--檢索表a中列e不為NULL的數據
⑷ SQL判斷欄位是否為空,為NULL
SQL語句條件查詢時,有時會判斷某個欄位是否為空或者是否為NULL;
欄位內容為空有兩種情況
1.為null
2.為字元串的空''
語句如下:
select * from table(表名) where column is null or trim(欄位)='';
這樣就可以排除欄位內容為null、''的。
判斷某個欄位不為空
select * from table(表名) where trim(column) != '';
曾經嘗試判斷null:is not null.但是不起作用,放棄。。。直接 trim(欄位) != '' 就能解決。
⑸ SQL語句條件為空值
方法一:宏斗談
select*fromusertable
where銷信(name=@nameandpage=@page)ornameisnullorpageisnull
方法二:
SELECT*FROMusertableWHEREname=ISNULL(NULLIF(@name,''),name)ANDpage=ISNULL(NULLIF(@page,''),page)
方法三:
select*fromtbwhere(@nameidnullorname=@name)and(pageisnullorpage=@page)
(5)sql語句null擴展閱讀:
SQL中時間為空的處理小結
1、如果不輸入null值,當時間為空時,會默認寫入"1900-01-01",在業務處理時很麻煩。
ctrl+0即可輸入NULL值。
2、用case進行查詢,若寫成:
select (case DateTime1 when NULL then 'a' else 'b' end) from TestTable
則查詢結果為:
b
b
b
這顯然不是想要的結果;需要寫成:
select (case DateTime1 when DateTime1 then 'b' else 'a' end) from TestTable
其查詢結果才為:
b
a
b
這蔽碰才是想要的結果。
⑹ 如何正確理解 SQL 中的 NULL
SQL中Null的中文叫法是「空值」,其意思為"沒有值"的值,它的數據類型是未知的,在資料庫表裡Null不佔用物理磁碟空間,因為Null就是空無一物嘛,沒有東西自然就沒有佔用。資料庫表實際是二維表,新建表時所有的欄位值都是Null(空值),同樣添加新紀錄時未指定欄位值前每個欄位值也是Null,每個網格由橫向(欄位名)和縱向記錄行確定,當一個網格沒有寫入數據前其存儲的值就是Null(空值),這是天然屬性使然,寫入數據後其值就變為非"空值",如果我們再將該網格里的數據值擦除掉它又會變為「空值」。篩選含「空值」的記錄可以使用"expr is null",反之可以使用「expr is not」 。
說到Null不得不提到"零長度字元串"或者說"空字元串"(Sql中用一對沒有間隔單引號''表示),對於這兩者很多人會搞混淆。其實它們有根本上的區別,前者的數據類型是未知的,而後者的數據類型則是明確的即字元型,存儲「空字元串」是要佔用物理磁碟空間的。在不存在約束的情況下我們幾乎可以將Null值寫入任何數據類型的欄位里(請注意寫入Null值其背後的含義是擦除對應數據表網格中的數據值),而空字元串''只能寫入字元串型欄位里。還有Null值可以是「天然」就存在的,而空字元串則不會「天然」存在,它必須人為或以默認值形式寫入數據表才會出現。
Null在Sql語言中是一個很重要的概念,只有正確理解它才能把握好這門語言。