sql NOT LIKE NULL

Nat*_*Pet 2 sql

在我的where子句中,我有以下内容:

   where SharePt  NOT LIKE 'SharePoint Document%' 
Run Code Online (Sandbox Code Playgroud)

即使SharePt为null,结果也不会返回任何内容.

但是,当我执行以下操作时,它的工作原理或SharePtVer IS NULL

    where SharePt  NOT LIKE 'SharePoint Document%' OR SharePt  IS NULL
Run Code Online (Sandbox Code Playgroud)

想知道为什么NOT LIKE在包含NULL>方面不起作用

Mic*_*son 6

SQL使用三值逻辑 ... NULL与... 不同FALSE,并且NOT NULL不一样TRUE.

NULL 表示缺少值,并在SQL的三值逻辑中起到未知值的作用:

A AND B | TRUE    | FALSE   | Unknown
--------+---------+---------+--------
TRUE    | TRUE    | FALSE   | Unknown
FALSE   | FALSE   | FALSE   | FALSE
Unknown | Unknown | FALSE   | Unknown


A OR B  | True    | False   | Unknown
--------+---------+---------+--------
True    | True    | True    | True
False   | True    | False   | Unknown
Unknown | True    | Unknown | Unknown
Run Code Online (Sandbox Code Playgroud)

where SharePt NOT LIKE 'SharePoint Document%'被评估,如果SharePtNULL,或未知...那么结果会是未知的...... SharePt可能是也可能不是LIKE 'SharePoint Document%'.