Есть ли разница между «! =» И «<>» в Oracle Sql?

Я хотел бы знать, есть ли различия между этими двумяnot equal операторы<> а также!= в Oracle.

Есть ли случаи, когда они могут давать разные результаты или разную производительность?

 Mesop18 мая 2012 г., 14:01
Возможный дубликат Оракул не равен оператору
 user17780014 июн. 2017 г., 19:06

Ответы на вопрос(4)

 Jon Heller30 июн. 2015 г., 02:38
Несмотря на популярность, этот сайт, к сожалению, не является надежным источником по многим темам. Этот вопрос обсуждался ранееВо. Несмотря на щедрость, никто не смог создать тестовый пример, демонстрирующий заметную разницу в производительности. Но мое предложение остается в силе - я дам вам награду в 500 баллов, если вы сможете создать тестовый пример, показывающий, что! = Быстрее, чем другие операторы, не имеющие равных.
Решение Вопроса


(То же самое верно для всех других СУБД - большинство из них поддерживают оба стиля):

Вот текущая ссылка на SQL:https: //docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAAB

Стандарт SQL определяет только один оператор для " не равно "и это<>

 Mark McLaren19 июл. 2017 г., 09:02
! = легче хранить в файле XML!

На самом деле, есть Четыре формы этого оператора:

<>
!=
^=

и даж

¬= -- worked on some obscure platforms in the dark ages

которые одинаковы, но обрабатываются по-разному, когда требуется дословное совпадение (сохраненные контуры или кэшированные запросы).

 MatBailie18 мая 2012 г., 12:35
И такие вариации, какNOT(x = y), может быть!(x = y), так далее
 Quassnoi18 мая 2012 г., 12:43
@ Dems: inOracle, логическое не является первоклассным типом вSQL (который отличается отPL/SQL). И. е. ты не можешьSELECT 1 = 1 FROM dual как в некоторых других системах. Таким образом, логические значения имеют свой собственный набор операторов, действительных только в логических контекстах WHERE илиHAVING или аналогичные пункты).NOT - единственный логический оператор отрицания в OracSQL (НАСКОЛЬКО МНЕ ИЗВЕСТНО)
 Bob Jarvis14 дек. 2016 г., 20:21
¬= -- worked on some obscure platforms in the dark ages - Да, они назывались "мэйнфреймы IBM". Со времен, когда мужчины были мужчинами, женщины были женщинами, динозавры бродили по земле, а компьютеры охлаждались водой. : -)
 a_horse_with_no_name18 мая 2012 г., 12:36
Интересный! Я не знал о^= (увидел сам первый раз, когда я разместил ссылку на мануал). Но ваша точка зрения о кешированных запросах хорошая.

е на работодателей, хотя все вышеперечисленные операторы имеют одинаковую функциональность.

 Jeffrey Kemp23 мая 2012 г., 04:07
Вероятно, мое наследие C выходит, но я терпеть не могу<> и предпочитаю!=. Главным образом потому, что<>не кажется, что @ в своем высказывании «меньше или больше чем» предполагает, что тип данных имеет неявное упорядочение (что не обязательно верно, хотя и верно для всех типов данных SQL), тогда как!= говорит "не равный" в очень чистом смысле.
 user140358120 мая 2012 г., 17:21
Интересный. Возможно, придется проверить все остальное, чему меня учили, стандарта SQL или нет. Спасибо за указание на это.
 Denise Skidmore15 мар. 2018 г., 17:12
Стандарты кодирования часто зависят от работодателя. Если у вашего работодателя нет стандарта кодирования, для команды будет хорошей идеей выбрать общедоступный.
 a_horse_with_no_name20 мая 2012 г., 15:10
Стандарт SQL (только) определяет<> как оператор "не равно". Так что я бы хотел использовать это как «лучшую практику

Ваш ответ на вопрос