Есть ли разница между "! =" И "<>" в Oracle Sql?
Я хотел бы знать, существуют ли какие-либо различия между двумя операторами not equal
<>
и !=
в Oracle.
Существуют ли случаи, когда они могут давать разные результаты или различную производительность?
Ответы
Ответ 1
Нет никакой разницы в функциональности.
(То же самое верно для всех других СУБД - большинство из них поддерживают оба стиля):
Вот текущая ссылка SQL: https://docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAABC
Стандарт SQL определяет только один оператор для "не равно", а это <>
Ответ 2
На самом деле существуют формы четыре этого оператора:
<>
!=
^=
и даже
¬= -- worked on some obscure platforms in the dark ages
которые являются одинаковыми, но обрабатываются по-разному, когда требуется дословное совпадение (сохраненные контуры или кешированные запросы).
Ответ 3
В университете нас учили "лучшей практике" использовать!= при работе для работодателей, хотя все вышеперечисленные операторы имеют одинаковую функциональность.
Ответ 4
В соответствии с этой статьей!= выполняется быстрее
http://www.dba-oracle.com/t_not_equal_operator.htm