¿Y variaciones como NOT(x = y), tal vez !(x = y), etc.?
MatBailie
1
¡Interesante! No sabía sobre el ^=(lo vi yo mismo la primera vez que publiqué el enlace al manual). Pero su punto sobre las consultas en caché es bueno.
a_horse_with_no_name
1
@Dems: in Oracle, boolean no es un tipo de primera clase SQL(que es diferente de PL/SQL). I. e. no te puede SELECT 1 = 1 FROM dualgustar en algunos otros sistemas. Por lo tanto, los booleanos tienen su propio conjunto de operadores válidos solo en contextos lógicos ( WHEREo HAVINGcláusulas similares). NOTes el único operador de negación booleana en Oracle SQL(AFAIK).
Quassnoi
3
¬= -- worked on some obscure platforms in the dark ages- Sí, se llamaron "mainframes de IBM". Desde los días en que los hombres eran hombres, las mujeres eran mujeres, los dinosaurios deambulaban por la tierra y las computadoras se enfriaban con agua. :-)
Bob Jarvis - Restablece a Monica el
1
En la universidad nos enseñaron que 'la mejor práctica' era usar! = Cuando trabajaba para empleadores, aunque todos los operadores anteriores tienen la misma funcionalidad.
El estándar SQL (solo) se define <>como el operador "no igual". Así que consideraría usar eso como la "mejor práctica"
a_horse_with_no_name
2
Interesante. Puede que tenga que verificar todo lo demás que me han enseñado es del estándar SQL o no. Gracias por mencionarlo.
11
Probablemente salga mi herencia C, pero no puedo soportarlo <>y prefiero !=. Principalmente porque <>al decir "menor o mayor que", para mí, parece suponer que el tipo de datos tiene un orden implícito (que no es necesariamente cierto, aunque es cierto para todos los tipos de datos SQL), mientras !=que dice "no igual" en un sentido muy puro
Jeffrey Kemp
1
Los estándares de codificación a menudo dependen del empleador. Si su empleador no tiene un estándar de codificación, es una buena idea que el equipo elija uno público.
Denise Skidmore
-3
De acuerdo con este artículo,! = Funciona más rápido
Aunque popular, ese sitio web desafortunadamente no es una fuente confiable en muchos temas. Este problema se discutió anteriormente aquí . A pesar de la recompensa, nadie pudo crear un caso de prueba que demostrara una diferencia notable en el rendimiento. Pero mi oferta sigue en pie: te daré una recompensa de 500 puntos si puedes crear un caso de prueba que muestre que! = Es más rápido que otros operadores no iguales.
Respuestas:
No, no hay ninguna diferencia en la funcionalidad.
(Lo mismo es cierto para todos los demás DBMS, la mayoría de ellos admiten ambos estilos):
Aquí está la referencia SQL actual: https://docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAABC
El estándar SQL solo define un único operador para " no es igual " y eso es
<>
fuente
IS NOT
equivalente / sinónimo / .. a<>
y!=
? ¿Se pueden usar los tres de la misma manera?En realidad, hay cuatro formas de este operador:
e incluso
que son iguales, pero se tratan de manera diferente cuando se requiere una coincidencia literal (contornos almacenados o consultas en caché).
fuente
NOT(x = y)
, tal vez!(x = y)
, etc.?^=
(lo vi yo mismo la primera vez que publiqué el enlace al manual). Pero su punto sobre las consultas en caché es bueno.Oracle
, boolean no es un tipo de primera claseSQL
(que es diferente dePL/SQL
). I. e. no te puedeSELECT 1 = 1 FROM dual
gustar en algunos otros sistemas. Por lo tanto, los booleanos tienen su propio conjunto de operadores válidos solo en contextos lógicos (WHERE
oHAVING
cláusulas similares).NOT
es el único operador de negación booleana en OracleSQL
(AFAIK).¬= -- worked on some obscure platforms in the dark ages
- Sí, se llamaron "mainframes de IBM". Desde los días en que los hombres eran hombres, las mujeres eran mujeres, los dinosaurios deambulaban por la tierra y las computadoras se enfriaban con agua. :-)En la universidad nos enseñaron que 'la mejor práctica' era usar! = Cuando trabajaba para empleadores, aunque todos los operadores anteriores tienen la misma funcionalidad.
fuente
<>
como el operador "no igual". Así que consideraría usar eso como la "mejor práctica"<>
y prefiero!=
. Principalmente porque<>
al decir "menor o mayor que", para mí, parece suponer que el tipo de datos tiene un orden implícito (que no es necesariamente cierto, aunque es cierto para todos los tipos de datos SQL), mientras!=
que dice "no igual" en un sentido muy puroDe acuerdo con este artículo,! = Funciona más rápido
http://www.dba-oracle.com/t_not_equal_operator.htm
fuente