第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

非IN子句和空值

非IN子句和空值

德瑪西亞99 2019-06-06 15:55:13
非IN子句和空值這個(gè)問(wèn)題出現(xiàn)時(shí),我得到了不同的記錄計(jì)數(shù),我認(rèn)為是相同的查詢之一使用not in where約束和另一個(gè)約束left join..的桌子not in約束有一個(gè)空值(壞數(shù)據(jù)),這將導(dǎo)致該查詢返回0條記錄的計(jì)數(shù)。我有點(diǎn)理解為什么,但是我需要一些幫助來(lái)充分理解這個(gè)概念。簡(jiǎn)單地說(shuō),為什么查詢A返回一個(gè)結(jié)果而B不返回?A: select 'true' where 3 in (1, 2, 3, null)B: select 'true' where 3 not in (1, 2, null)這發(fā)生在SQLServer 2005上。我還發(fā)現(xiàn)set ansi_nulls off使B返回結(jié)果。
查看完整描述

3 回答

?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

查詢A與以下內(nèi)容相同:

select 'true' where 3 = 1 or 3 = 2 or 3 = 3 or 3 = null

3 = 3是真的,你得到了結(jié)果。

查詢B與以下內(nèi)容相同:

select 'true' where 3 <> 1 and 3 <> 2 and 3 <> null

什么時(shí)候ansi_nulls開著呢,3 <> null是未知的,因此謂詞的計(jì)算結(jié)果是未知的,因此不會(huì)得到任何行。

什么時(shí)候ansi_nulls離開了,3 <> null為true,因此謂詞的計(jì)算結(jié)果為true,然后得到一行。


查看完整回答
反對(duì) 回復(fù) 2019-06-06
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

每當(dāng)您使用NULL時(shí),您實(shí)際上是在處理一個(gè)三值邏輯。

當(dāng)WHERE子句的計(jì)算結(jié)果為:

    3 = 1 or 3 = 2 or 3 = 3 or 3 = nullwhich is:
    FALSE or FALSE or TRUE or UNKNOWN
which evaluates to 
    TRUE

第二項(xiàng):

    3 <> 1 and 3 <> 2 and 3 <> nullwhich evaluates to:
    TRUE and TRUE and UNKNOWN
which evaluates to:
    UNKNOWN

未知與false不同,您可以通過(guò)調(diào)用以下命令輕松地對(duì)其進(jìn)行測(cè)試:

select 'true' where 3 <> nullselect 'true' where not (3 <> null)

這兩個(gè)查詢都不會(huì)給出結(jié)果。

如果未知與false相同,那么假設(shè)第一個(gè)查詢會(huì)給出false,那么第二個(gè)查詢將不得不計(jì)算為true,因?yàn)樗鼘⑴cNOT(False)相同。
情況并非如此。

有一個(gè)很好的關(guān)于SqlServerCentral的文章.

一開始,關(guān)于NULL和三值邏輯的整個(gè)問(wèn)題可能有點(diǎn)混亂,但要想在tsql中編寫正確的查詢,就必須要理解這些問(wèn)題。

我推薦的另一篇文章是SQL聚合函數(shù)和NULL.


查看完整回答
反對(duì) 回復(fù) 2019-06-06
?
冉冉說(shuō)

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

NOT IN當(dāng)與未知值比較時(shí),返回0條記錄。

NULL是未知的,NOT IN查詢包含NULLNULL在可能的值列表中,s將始終返回。0記錄,因?yàn)闊o(wú)法確定NULL值不是正在測(cè)試的值。


查看完整回答
反對(duì) 回復(fù) 2019-06-06
  • 3 回答
  • 0 關(guān)注
  • 487 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)