Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 игнорируются ячейки со значением NULL  [new]
fargutvest
Member

Откуда: Минск
Сообщений: 47
Доброго дня! Нужна помощь специалиста, в интернете решения найти не смог.
Суть в следующем :
делаю запрос
автор
SELECT * FROM repair WHERE plomba != 'zzzzzzzzz' ORDER BY nomer_punkta

в столбце plomba встречаются пустые клетки (NULL), клеток со значениями zzzzzzzz нету
таким образом в результате запроса я ожидаю увидеть все строки таблицы, а на самом деле вижу все строки кроме строк со значениями (NULL)
Подскажите пожалуйста почему SQL сервер игнорирует строки с пустыми клетками?
12 мар 13, 14:44    [14040502]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37228
or plomba is null

Сообщение было отредактировано: 12 мар 13, 14:46
12 мар 13, 14:46    [14040510]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
Гость333
Member

Откуда:
Сообщений: 3683
fargutvest
Подскажите пожалуйста почему SQL сервер игнорирует строки с пустыми клетками?

Потому что сранение с NULL'ами в SQL делается так: "XXX is null", "XXX is not null".
Ваше условие должно выглядеть так:
SELECT * FROM repair WHERE  plomba != 'zzzzzzzzz' OR plomba IS NULL ORDER BY nomer_punkta
12 мар 13, 14:48    [14040518]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
fargutvest
Member

Откуда: Минск
Сообщений: 47
Гавриленко Сергей Алексеевич, Гость333 спасибо, работает.
12 мар 13, 15:07    [14040639]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
А интересно, сработает ли так?
SELECT * FROM repair WHERE NOT( plomba = 'zzzzzzzzz' ) ORDER BY nomer_punkta
:))
12 мар 13, 16:23    [14041305]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3394
Cygapb-007,

NOT (UNKNOWN) чему равно, по вашему? :)
12 мар 13, 16:26    [14041327]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
iap
Member

Откуда: Москва
Сообщений: 47085
Cygapb-007
А интересно, сработает ли так?
SELECT * FROM repair WHERE NOT( plomba = 'zzzzzzzzz' ) ORDER BY nomer_punkta
:))
Нет, конечно. Ибо NULL='zzzzzzzzz' => UNKNOWN и NOT UNKNOWN=UNKNOWN <> TRUE

Значения NULL

В следующей таблице показаны результаты применения оператора AND к двум логическим операндам.
ANDTRUEUNKNOWNFALSE
TRUETRUEUNKNOWNFALSE
UNKNOWNUNKNOWNUNKNOWNFALSE
FALSEFALSEFALSEFALSE

В следующей таблице показаны результаты применения оператора OR к двум логическим операндам.
ORTRUEUNKNOWNFALSE
TRUETRUETRUETRUE
UNKNOWNTRUEUNKNOWNUNKNOWN
FALSETRUEUNKNOWNFALSE

В следующей таблице показано, как оператор NOT выполняет логическое отрицание (или обращение) результата логического оператора.
Логическое выражение, к которому применяется оператор NOTРезультат
TRUEFALSE
UNKNOWNUNKNOWN
FALSETRUE

Для проверки наличия значений NULL стандарт ISO использует ключевые слова IS NULL и IS NOT NULL.
Логическое выражение, к которому применяется оператор IS NULLРезультатЛогическое выражение, к которому применяется оператор IS NOT NULLРезультат
TRUEFALSETRUETRUE
NULLTRUENULLFALSE
FALSEFALSEFALSETRUE


https://www.sql.ru/forum/actualthread.aspx?tid=839159&pg=1&mid=10436824#10436824
12 мар 13, 16:31    [14041359]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
Аленочка
Member

Откуда: Владик
Сообщений: 2169
вот еще вариант
SELECT * FROM repair WHERE ISNULL(plomba,0) != 'zzzzzzzzz' ORDER BY nomer_punkta
13 мар 13, 05:55    [14043228]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
Хмммм
Guest
Аленочка,

Что-то в Вашем варианте типы данных перемешаны... Не к добру это ;-)
13 мар 13, 08:49    [14043358]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
Олегон
Member

Откуда: Казахстан, Алматы
Сообщений: 80
А ещё прощай индекс, если подразумевается.
13 мар 13, 11:11    [14044060]     Ответить | Цитировать Сообщить модератору
 Re: игнорируются ячейки со значением NULL  [new]
iap
Member

Откуда: Москва
Сообщений: 47085
SELECT * FROM repair WHERE NOT EXISTS(SELECT plomba INTERSECT SELECT 'zzzzzzzzz') ORDER BY nomer_punkta;
13 мар 13, 11:14    [14044075]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить