1樓:
你這是資料庫選項 ansi_nulls 的設定問題,請使用下面**進行測試
****************************************
declare @a varchar(20)
set ansi_nulls on
select case when @a = null then 1 end as res,case when @a is null then 1 end as res1
set ansi_nulls off
select case when @a = null then 1 end as res,case when @a is null then 1 end as res1
****************************************
ansi_nulls 在on和off時,比較方式是不一樣的.而sql 預設ansi_nulls 狀態是on
下面是空值比較的說明
****************************************
比較空值
比較空值時必須小心。比較行為取決於選項 set ansi_nulls 的設定。
當 set ansi_nulls 為 on 時,如果比較中有乙個或多個表示式為 null,則既不輸出 true 也不輸出 false,而是輸出 unknown。這是因為,未知值不能與其它任何值進行邏輯比較。這種情況發生在乙個表示式與 null 單詞進行比較,或者兩個表示式相比,而其中乙個表示式取值為 null 時。
例如,當 ansi_nulls 為 on 時,以下比較總是輸出 unknown:
ytd_sales > null
只要變數包含 null 值,下列比較也輸出 unknown:
ytd_sales > @myvariable
transact-sql 支援在與空值進行比較時,允許比較運算子返回 true 或 false。通過設定 ansi_nulls off 可將該選項啟用。當 ansi_nulls 為 off 時,如果 columna 包含空值,則比較操作 columna = null 返回 true;如果 columna 除包含 null 外還包含某些值,則比較操作返回 false。
此外,兩個都取空值的表示式的比較也輸出 true。當 ansi_nulls 設定為 off 時,select 語句將返回 customer 表中所有 region 為空值的行:
select customerid, companyname, region
from northwind.dbo.customers
where region = null
更詳細的說明參考sql的幫助,索引關鍵字:"空值:比較搜尋條件"
2樓:匿名使用者
在定義中說,空值不與任何值相等。因此不能使用 = null 做判斷。在sql語句中,唯一可以使用 = null的就是update語句中的賦值語句,其他地方都不可以使用。
3樓:匿名使用者
對於null的字段,必須用is null來判斷。
select * from student where name is null;
這樣 不能才能選出那些name列是空的。圖過用name=null則不行
update student set name=null where id=1;
上面語句可以把name列設定為空值
4樓:匿名使用者
啥 型別 (氵斿戲)都有
sql中select語句的is null和=' '有什麼區別?
js中的變數==null 與變數=='';之間的差別
5樓:匿名使用者
js中的null代表不存在,在某些情況下和undefined定義一樣,比如null==undefined返回的是true;而undefined這表示未定義;undefined是個型別,null是個object;然而''則表示具體的型別的值了;如果乙個變數申明了未賦值,則型別未定義,這裡判斷變數==null會返回true;
根本區別在於變數是否已經賦值,即是否已經初始化這裡要清楚:null是個object型別,且值只有nullundefined是個undefined型別,值只有undefined
''是個string型別的值
那麼這裡null==undefined返回truenull===undefined返回falsenull==''返回false
undefined==''返回false
6樓:_達文西
三者是不一樣的
undefined
宣告乙個變數沒有賦值,預設就是undefined例如:var i;
null
當你想要表示某個變數沒有具體值的時候給變數所賦的值null也可以看成是乙個值,就像true,false例如:var i=null;
''空字串
可以看成是乙個和a,b相同的特殊字元
注意:undefined == null;//返回trueundefined === null;//返回false
sql server 中的null和null的區別 20
7樓:匿名使用者
sql server 中的null和null的區別'' 表示空字串
null表示什麼都沒有,什麼都不是
判斷'' 用 ='' 或 <>'' , 而null 用is null 或is not null,欄位中如果出現null 會對查詢語句造成影響有可能導致索引失效,所以欄位中盡量不要出現null ,用'' 或其他字元代替 ,糾正一下其他人的觀點:null不代表空字串 哦, 代表表示什麼都沒有,什麼都不是,可以出現在任意型別字段裡面(int,decimal,varchar 等等都可以是null),''只能在varchar,char型別裡面出現
8樓:尐i強
在資料是未知數或者無法使用時,大多數的資料庫管理系統將儲存乙個叫做null值的特殊值。不要將它和零(乙個合法數值)、零長度串(不含有字元的一種串資料型別)或空格字元混淆起來。sql-3標準中把乙個null定義為:
「...乙個用來指明任何資料值都不存在的乙個特殊值...」
sqlserver中有乙個空值呼叫函式:
isnull 功能:使用指定的替換值替換 null。
語法 isnull ( check_expression , replacement_value )
引數 check_expression
將被檢查是否為 null的表示式。check_expression 可以是任何型別的。
replacement_value
在 check_expression 為 null時將返回的表示式。replacement_value 必須與 check_expresssion 具有相同的型別。
返回型別
返回與 check_expression 相同的型別。
注釋 如果 check_expression 不為 null,那麼返回該表示式的值;否則返回 replacement_value。
乙個例子:
使用 isnull
下面的示例為 titles 表中的所有書選擇書名、型別及**。如果乙個書名的**是 null,那麼在結果集中顯示的**為 0.00。
select substring(title, 1, 15) as title, type as type,
isnull(price, 0.00) as price
from titles
sql 資料庫 null 和 空字串的區別
9樓:sql的藝術
資料庫中的
null:表示「沒有對(列)變數輸入資料」,即在資料庫中的null可以區分「沒有對(列)變數輸入資料」和「有對(列)變數輸入資料」這兩類情況。
空字串:則是這裡的「有對(列)變數輸入資料」這一類情況,即有輸入資料,只是輸入的資料為空字串(含有終止符的還是)。
mssql對與null和空字串的判斷
--1、null判斷
select * from 表名 where 列名 is null
--2、空字串判斷
select * from 表名 where 列名=''
--3、null和空字串一併判斷
select * from 表名 where isnull(列名,'')=''
協變數和自變數的區別,協變數和分類協變數的區別
自變數是指研究者主動操縱,而引起因變數發生變化的因素或條件,因此自變數被看作是因變數的原因。協變數 在實驗的設計中,協變數是乙個獨立變數 解釋變數 不為實驗者所操縱,但仍影響響應。同時,它指與因變數有線性相關並在 自變數與因變數關係時通過統計技術加以控制 的變數。常用的協變數包括因變數的前測分數 人...
結構體變數和變數之間是怎樣賦值,結構體變數和變數之間是怎樣賦值
結構體要每個成員變數賦值,而普通變數直接賦值 不行哦,型別不同,又不能進行型別轉化,如果你一定要這樣賦值的話,你就過載運算子吧 逐項 逐變數賦值 比如 struct a,b a.a 1 a.b 2 b.a a.a b.b a.b struct a a a a.m age 20 a.m name cj...
自變數為定量和分類變數,因變數為連續性定量變數,如何用sps
如果自變數裡面的分類變數是只有兩個分類的,那你就把它跟其他定量專自變數一屬起挪到自變數對話方塊就可以的 如果分類變數超過兩個分類,有3個或以上時,需要實現設定啞變數或者是叫做虛擬變數。這個需要自己重新編碼,就是把每個分類單獨一列,該項選擇了就編碼成1,其他的是0 然後把這些單獨設定的全部一起移入自變...