SQL: записи, показывающие пустым во время выполнения запроса - PullRequest
1 голос
/ 28 апреля 2011

Я выполняю запрос

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

В ответ на выполнение отображаются имена столбцов, но записи не отображаются.

Если я использовал ИЛИ вместо И это работает. Есть идеи, почему AND не работает?

С уважением.

Ответы [ 3 ]

5 голосов
/ 28 апреля 2011

Это никогда не может дать никаких результатов. 2 условия противоречивы.

Если ParkingStartTime IS NULL, то ParkingStartTime <> '08:00:00.0000000' оценивается как unknown.

True and Unknown оценивается как Unknown в таблицах истинности для 3-значной логики .

enter image description here

1 голос
/ 28 апреля 2011

Если значение ParkingStartTime равно нулю, оно не может иметь значение.Это означает, что любое значение, которое соответствует первой части запроса, не может соответствовать второй части запроса.

Вам нужно просто

ParkingStartTime is null

или

ParkingStartTime <> '08:00:00.000000'
0 голосов
/ 28 апреля 2011

ParkingStartTime не может быть равным NULL (неизвестно), а также быть равным определенному значению, например, 08: 00: 00,0000000

Запрос не возвращает никаких значений, поскольку ваша логика неверна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...