Должен ли я использовать! = Или <> для неравных в T-SQL? - PullRequest
756 голосов
/ 07 апреля 2009

Я видел SQL, который использует != и <> для , не равных . Какой синтаксис предпочтителен и почему?

Мне нравится !=, потому что <> напоминает мне Visual Basic.

Ответы [ 14 ]

5 голосов
/ 24 ноября 2014

В качестве альтернативы можно использовать оператор NULLIF, отличный от <> или !=, который возвращает NULL, если два аргумента равны NULLIF в документах Microsoft . Поэтому я считаю, что предложение WHERE можно изменить для <> и != следующим образом:

NULLIF(arg1, arg2) IS NOT NULL

Как я обнаружил, использование <> и != в некоторых случаях не работает на дату. Следовательно, использование вышеприведенного выражения делает необходимым.

1 голос
/ 10 июня 2017

Я предпочел использовать != вместо <>, потому что иногда я использую синтаксис <s></s> для написания команд SQL. Использование != удобнее, чтобы избежать синтаксических ошибок в этом случае.

0 голосов
/ 17 марта 2014

Хотя они функционируют одинаково, != означает в точности «не равно», в то время как <> означает больше и меньше сохраненного значения.

Рассмотрим >= или <=, и это будет иметь смысл, если учитывать ваши индексы для запросов ... <> будет работать быстрее в некоторых случаях (с правильным индексом), но в некоторых других случаях (индекс бесплатно) они будут работать точно так же.

Это также зависит от того, как ваша система баз данных считывает значения != и <>. Поставщик базы данных может просто сократить его и заставить их функционировать одинаково, так что в любом случае это не принесет никакой пользы. PostgreSQL и SQL Server не сокращают это; оно читается так, как показано выше.

0 голосов
/ 21 февраля 2014

Они оба приняты в T-SQL. Однако кажется, что использование <> работает намного быстрее, чем !=. Я только что запустил сложный запрос, который использовал !=, и для его выполнения потребовалось в среднем около 16 секунд. Я изменил их на <>, и теперь выполнение запроса в среднем занимает около 4 секунд. Это огромное улучшение!

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