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

Откуда:
Сообщений: 18
Всем привет.
Помогите разобраться. Два разных синтаксиса в поиске (поиск всех записей кроме условия) :

Where colname != 'MyName'
Where NOT (colname = 'MyName')

Есть ли разница при поиске по индексу по полю colname .
Может кто знает, где можно подробно об этом почитать.
Спасибо.
19 мар 17, 23:00    [20311786]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Синтаксический сахар же.
19 мар 17, 23:24    [20311848]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
TaPaK
Member

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

а стандарт вообще говорит пишите <> и всё )
20 мар 17, 10:12    [20312640]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
угу, != давно как вывели из стандарта.
Where NOT (colname = 'MyName') - очень частный упрощенный случай использования выражения.
20 мар 17, 11:03    [20312942]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
Borik2012
Member

Откуда:
Сообщений: 18
Всем спасибо.
Понятно, что возвращаются такие же данные.
Вопрос в том работает ли индекс в обоих случаях ?
20 мар 17, 12:00    [20313296]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
TaPaK
Member

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

автор
Вопрос в том работает ли индекс в обоих случаях ?

автор
Синтаксический сахар же.


в результате скл преобразует !=, NOT () в <>.
20 мар 17, 12:07    [20313344]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
Добрый Э - Эх
Guest
Borik2012
Вопрос в том работает ли индекс в обоих случаях ?
с чего ты взял, что индекс используется хотя бы в одном из этих случаев? планы курил и увидел?
20 мар 17, 12:10    [20313355]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
TaPaK
Borik2012,

автор
Вопрос в том работает ли индекс в обоих случаях ?

автор
Синтаксический сахар же.


в результате скл преобразует !=, NOT () в <>.
преобразует "!=", "NOT ()" и "<>" в "< OR >".
Наверно, так?
20 мар 17, 12:19    [20313400]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
TaPaK
Member

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

автор
преобразует "!=", "NOT ()" и "<>" в "< OR >".
Наверно, так?

может и так, у меня в планах показывает <>
20 мар 17, 12:21    [20313411]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
Borik2012
Вопрос в том работает ли индекс в обоих случаях ?
Будет работать, если оптимизатор сочтет это выгодным.
Либо будет Index Scan с предикатом colname < 'Myname' or colname > 'MyName'
Либо будет Index Seek с двумя Seek-предикатами: colname < 'Myname' и colname > 'MyName'
20 мар 17, 12:30    [20313443]     Ответить | Цитировать Сообщить модератору
 Re: condition !=  [new]
Borik2012
Member

Откуда:
Сообщений: 18
Спасибо !
20 мар 17, 15:02    [20314179]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить