Oracle не равен оператору - PullRequest
19 голосов
/ 03 ноября 2010

Есть два оператора не равных - != и <>.

Какая разница между ними? Я слышал, что != эффективнее, чем другие, для сравнения строк. Может ли кто-нибудь дать качественный комментарий к этому утверждению.

Ответы [ 6 ]

26 голосов
/ 03 ноября 2010

Они одинаковы (как и третья форма, ^=).

Обратите внимание, однако, что они все еще считаются отличными от точки зрения синтаксического анализатора, то есть сохраненный контур, определенный для !=, не будет соответствовать <> или ^=.

Это не похоже на PostgreSQL, когда синтаксический анализатор обрабатывает != и <> еще на этапе синтаксического анализа, поэтому вы не можете перегрузить != и <>, чтобы они были разными операторами.

6 голосов
/ 03 ноября 2010

Между ними нет никакой функциональной разницы или производительности. Используйте тот синтаксис, который вам подходит.

Это похоже на использование AS и IS при объявлении функции или процедуры. Они полностью взаимозаменяемы.

4 голосов
/ 04 ноября 2010

Как все говорили, разницы нет.(В качестве проверки работоспособности я провел несколько тестов, но это была пустая трата времени, конечно, они работают одинаково.)

Но на самом деле существует четыре типа операторов неравенства:! =, ^ =, <>и ¬ =.См. на этой странице в справочнике Oracle SQL .На веб-сайте четвертый оператор отображается как ÿ =, но в PDF он отображается как ¬ =.Согласно документации, некоторые из них недоступны на некоторых платформах.Что на самом деле означает, что ¬ = почти никогда не работает.

Просто из любопытства мне бы очень хотелось узнать, в какой среде ¬ = работает.

4 голосов
/ 03 ноября 2010

Они одинаковые, но я слышал, что люди говорят, что разработчики используют !=, а БА - <>

1 голос
/ 18 июля 2013

Разработчики, использующие mybatis-подобный фреймворк, предпочтут! = Более <>.Причина в том, что <> необходимо будет заключить в CDATA, поскольку это можно интерпретировать как синтаксис xml.Проще и на глазах.

0 голосов
/ 11 марта 2016

Разница:

«Если вы используете !=, он возвращает менее секунды. Если вы используете <>, для возврата требуется 7 секунд.

Oracle не равен (! =) SQL-оператору

Привет

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