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

Откуда:
Сообщений: 265
Подскажите как сделать так что бы через in показывалось если записи нет.

Я пробовал написать вот так:

A.[Type]  in (0,11,null)


Не работает так, подскажите как правильно.
6 июн 16, 17:43    [19264196]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Pabl0,

или ISNULL(A.[Type],-999) IN (0,11,-999) или правильнее

A.[Type]  in (0,11) OR A.[Type] IS NULL
6 июн 16, 17:45    [19264212]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
Xenix
Guest
NULL убери из списка
6 июн 16, 17:46    [19264219]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
Konst_One
Member

Откуда:
Сообщений: 11562
https://msdn.microsoft.com/ru-ru/library/ms177682(v=sql.120).aspx

Для любых значений NULL, возвращаемых в полях subquery или expression, которые сравниваются со значением test_expression с помощью предложения IN или NOT IN, возвращается результат UNKNOWN. Использование значений NULL с предложениями IN или NOT IN может привести к непредвиденным результатам.
6 июн 16, 17:46    [19264221]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
Pabl0
Member

Откуда:
Сообщений: 265
А подскажите
A.[Type]  in (0,11) OR A.[Type] IS NUL
если мне записи вообще нету такой в таблице то мне выдаст что ее нету?
6 июн 16, 17:49    [19264239]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
Konst_One
Member

Откуда:
Сообщений: 11562
если условия FALSE , то запрос ничего не вернёт
6 июн 16, 17:50    [19264254]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8317
Pabl0, вернёт список атрибутов согласно запроса, без значений.
6 июн 16, 18:31    [19264476]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
iap
Member

Откуда: Москва
Сообщений: 47049
Konst_One
если условия FALSE , то запрос ничего не вернёт
Нет, не так.
Если условие не вернёт TRUE, то запрос ничего не вернёт.
6 июн 16, 19:04    [19264608]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
iap
Member

Откуда: Москва
Сообщений: 47049
Pabl0
А подскажите
A.[Type]  in (0,11) OR A.[Type] IS NUL

если мне записи вообще нету такой в таблице то мне выдаст что ее нету?
Если есть таблица с полным списком того, что может быть,
то применяя к ней LEFT JOIN с основной таблицей, можно получить NULL
для записей, которые могли бы быть, но их нет.
6 июн 16, 19:07    [19264616]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
mfn
Member

Откуда:
Сообщений: 1
COALESCE(A.[TYPE], 0) IN (0, 11)
6 июн 16, 19:10    [19264622]     Ответить | Цитировать Сообщить модератору
 Re: Основы IN  [new]
iap
Member

Откуда: Москва
Сообщений: 47049
mfn
COALESCE(A.[TYPE], 0) IN (0, 11)

Pabl0
если мне записи вообще нету такой в таблице
6 июн 16, 19:14    [19264638]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить