SQL:在执行查询期间显示空白的记录

时间:2011-04-28 13:28:19

标签: sql sql-server tsql

我正在执行查询

Select * 
from Parking 
Where ParkingStartTime <> '08:00:00.0000000' 
  AND ParkingStartTime IS NULL

作为对执行的回应,会显示列名,但是没有显示记录。

如果我使用OR而不是AND它有效。知道为什么AND不工作的任何想法?

问候。

3 个答案:

答案 0 :(得分:5)

这永远不会返回任何结果。这两个条件是矛盾的。

如果ParkingStartTime IS NULL,则ParkingStartTime <> '08:00:00.0000000'将评估为unknown

True and Unknown根据3 valued logic的真值表评估为Unknown

enter image description here

答案 1 :(得分:1)

如果ParkingStartTime为null,则它不能有值。这意味着满足查询第一部分的任何值都不能满足查询的第二部分。

你要么只需要

ParkingStartTime is null

ParkingStartTime <> '08:00:00.000000'

答案 2 :(得分:0)

ParkingStartTime既不能为NULL(未知),也不能等于特定值,例如08:00:00.0000000

查询不返回任何值,因为您的逻辑不正确。