2011-11-03 109 views
6

¿Por qué hay dos operadores lógicos diferentes que parecen hacer lo mismo (< = &!>), ¿Hay alguna situación en la que se prefiera? sobre el otro?sql usos de "menor que o igual a" & "no mayor que"

+0

Personalmente, NUNCA he visto '!>' Usado en cualquier lugar, en cualquier idioma. ¿Es esa sintaxis válida en alguna parte? –

+0

No. Cuando un RDBMS tiene ambos, son equivalentes. –

+0

http://msdn.microsoft.com/en-us/library/aa276867(v=SQL.80).aspx – harryovers

Respuesta

7

< = y> son operadores de comparación, no operadores lógicos. ! es un operador lógico (significa NO). Cuando combinas! y>, simplemente está invirtiendo un operador de comparación, por lo que su resultado final es el mismo.

Dicho esto, < = es la forma común, por lo que diría que es preferible, para facilitar la lectura, nada más. No sé si hay un beneficio en el rendimiento para ambos, pero lo dudo.

Edit: Además, no dijiste con qué sabor de SQL estás tratando. Como señaló @harryovers, ese es un operador válido en MS-SQL, pero podría no funcionar en todas partes.

+0

Para referencia: http://beginner-sql-tutorial.com/sql-operators.htm – ddrace

0

Cuando dicen operadores lógicos lógica es ANDOR y nunca he visto!> He visto <>

Si se refiere a != y <> que son los mismos.

+0

http://msdn.microsoft.com/en-us/library/aa276867(v=SQL.80).aspx – harryovers

+0

Nunca lo usé ... extraño nunca lo supo, incluso funcionaría. Aún así, no cambia la forma en que funciona, supongo que es una manera diferente de despellejar a un gato. – JonH

4

No puedo ver por qué usaría uno sobre el otro, pero !> no está en las normas ISO, y en base a eso diría que <= es la forma preferida.

1

No, no hay diferencia. La única razón por la que puedo pensar es hacerlo más legible en un determinado contexto.

E.g. por el mismo motivo, usaría < 5 en lugar de <= 4 si hubiera un significado para el que representara algún límite en el contexto.

1

El !=, !< y !> no son operadores de comparación estándar y sólo están soportados por unos sistemas, siendo uno de SQL Server: msdn: Comparison Operators (Transact-SQL). MySQL también admite != pero solo eso, no los otros dos.

Los operadores de comparación SQL estándar son equivalentes <>, >= y <=.

En todas las situaciones, preferiría el estándar. No sabe cuándo tiene que migrar su código a otra plataforma (y tiene menos errores).

4

Una razón para tener la alternativa> es facilitar la colocación de SQL dentro de XML. El signo menor introduce etiquetas XML. Si SQL con un < está incluido en XML o HTML, debería escaparse como & LT ;. Un signo mayor que no significa nada especial a menos que haya sido precedido por un signo menor que.

Cuestiones relacionadas