Hola usuario de nuestra web, hemos encontrado la solución a tu interrogante, has scroll y la verás aquí.
Los operadores de comparación habituales están disponibles, como se muestra en la Tabla 9.1.
Cuadro 9.1. Operadores de comparación
Operador | Descripción |
---|---|
datatype < datatype → boolean |
Menos que |
datatype > datatype → boolean |
Mas grande que |
datatype <= datatype → boolean |
Menos que o igual a |
datatype >= datatype → boolean |
Mayor qué o igual a |
datatype = datatype → boolean |
Igual |
datatype <> datatype → boolean |
No es igual |
datatype != datatype → boolean |
No es igual |
Nota
<>
es la notación SQL estándar para "no es igual".!=
es un alias, que se convierte en<>
en una etapa muy temprana de análisis. Por tanto, no es posible implementar!=
y<>
operadores que hacen cosas diferentes.
Estos operadores de comparación están disponibles para todos los tipos de datos integrados que tienen un orden natural, incluidos los numéricos, stringy tipos de fecha / hora. Además, las matrices, los tipos compuestos y los rangos se pueden comparar si los tipos de datos de sus componentes son comparables.
Por lo general, también es posible comparar valores de tipos de datos relacionados; por ejemplo integer
>
bigint
trabajará. Algunos casos de este tipo son implementados directamente por "tipo cruzado" operadores de comparación, pero si no hay ningún operador disponible, el analizador coaccionará el tipo menos general al tipo más general y aplicará el operador de comparación de este último.
Como se muestra arriba, todos los operadores de comparación son operadores binarios que devuelven valores de tipo boolean
. Por tanto, expresiones como 1 < 2 < 3
no son válidos (porque no hay <
operador para comparar un valor booleano con 3
). Utilizar el BETWEEN
predicados que se muestran a continuación para realizar pruebas de rango.
También hay algunos predicados de comparación, como se muestra en la tabla 9.2. Estos se comportan de forma muy parecida a los operadores, pero tienen una sintaxis especial exigida por el estándar SQL.
Cuadro 9.2. Predicados de comparación
Predicado Descripción Ejemplo (s) |
---|
Entre (incluidos los puntos finales del rango).
|
No entre (la negación de
|
Entre, después de ordenar los dos valores de punto final.
|
No entre, después de ordenar los dos valores de punto final.
|
No es igual, tratando null como un valor comparable.
|
Igual, tratando null como un valor comparable.
|
Prueba si el valor es null.
|
Prueba si el valor no es null.
|
Prueba si el valor es null (sintaxis no estándar). |
Prueba si el valor no es null (sintaxis no estándar). |
Prueba si la expresión booleana rinde true.
|
Prueba si la expresión booleana rinde false o desconocido.
|
Prueba si la expresión booleana rinde false.
|
Prueba si la expresión booleana rinde true o desconocido.
|
Pruebe si la expresión booleana da como resultado desconocido.
|
Prueba si la expresión booleana rinde true o false.
|
los BETWEEN
predicado simplifica las pruebas de rango:
a BETWEEN x AND y
es equivalente a
a >= x AND a <= y
Darse cuenta de BETWEEN
trata los valores de los puntos finales como incluidos en el rango. BETWEEN SYMMETRIC
es como BETWEEN
excepto que no hay ningún requisito de que el argumento a la izquierda de AND
ser menor o igual que el argumento de la derecha. Si no es así, esos dos argumentos se intercambian automáticamente, por lo que siempre se implica un rango no vacío.
Las diversas variantes de BETWEEN
se implementan en términos de los operadores de comparación ordinarios y, por lo tanto, funcionarán para cualquier tipo de datos que se puedan comparar.
Nota
El uso de
AND
en elBETWEEN
la sintaxis crea una ambigüedad con el uso deAND
como operador lógico. Para resolver esto, solo se permite un conjunto limitado de tipos de expresión como segundo argumento de unBETWEEN
cláusula. Si necesita escribir una subexpresión más compleja enBETWEEN
, escriba paréntesis alrededor de la subexpresión.
Rendimiento de los operadores de comparación ordinarios null (que significa "desconocido"), no true o false, cuando cualquiera de las entradas es null. Por ejemplo, 7 = NULL
rendimientos null, al igual que 7 <> NULL
. Cuando este comportamiento no sea adecuado, utilice el IS [ NOT ] DISTINCT FROM
predicados:
a ISDISTINCTFROM b a ISNOTDISTINCTFROM b
Para nonull entradas, IS DISTINCT FROM
es el mismo que el <>
operador. Sin embargo, si ambas entradas son null vuelve false, y si solo una entrada es null vuelve true. Similar, IS NOT DISTINCT FROM
es idéntico a =
para nonull entradas, pero devuelve true cuando ambas entradas son null, y false cuando solo una entrada es null. Por tanto, estos predicados actúan efectivamente como si null eran un valor de datos normal, en lugar de "desconocido".
Para comprobar si un valor es o no null, use los predicados:
expression ISNULL expression ISNOTNULL
o los predicados equivalentes, pero no estándar:
expression ISNULL expression NOTNULL
Hacer no escribir expression = NULL
porque NULL
no es "igual a"NULL
. (Los null El valor representa un valor desconocido y no se sabe si dos valores desconocidos son iguales).
Propina
Algunas aplicaciones pueden esperar que
expression = NULL
devoluciones true siexpression
evalúa a la null valor. Se recomienda encarecidamente que estas aplicaciones se modifiquen para cumplir con el estándar SQL. Sin embargo, si eso no se puede hacer, la variable de configuración transform_null_equals está disponible. Si está habilitado, PostgreSQL convertiráx = NULL
cláusulas parax IS NULL
.
Si el expression
tiene un valor de fila, entonces IS NULL
es true cuando la expresión de la fila en sí es null o cuando todos los campos de la fila son null, tiempo IS NOT NULL
es true cuando la expresión de fila en sí no esnull y todos los campos de la fila no sonnull. Debido a este comportamiento, IS NULL
y IS NOT NULL
no siempre devuelve resultados inversos para expresiones con valores de fila; en particular, una expresión con valores de fila que contiene tanto null y nonull los campos volverán false para ambas pruebas. En algunos casos, puede ser preferible escribir row
IS DISTINCT FROM NULL
o row
IS NOT DISTINCT FROM NULL
, que simplemente comprobará si el valor total de la fila es null sin pruebas adicionales en los campos de la fila.
Los valores booleanos también se pueden probar usando los predicados
boolean_expression ISTRUE boolean_expression ISNOTTRUE boolean_expression ISFALSE boolean_expression ISNOTFALSE boolean_expression IS UNKNOWN boolean_expression ISNOT UNKNOWN
Estos siempre volverán true o false, nunca un null valor, incluso cuando el operando es null. A null la entrada se trata como el valor lógico "desconocido". Darse cuenta de IS UNKNOWN
y IS NOT UNKNOWN
son efectivamente los mismos que IS NULL
y IS NOT NULL
, respectivamente, excepto que la expresión de entrada debe ser de tipo booleano.
También están disponibles algunas funciones relacionadas con la comparación, como se muestra en la Tabla 9.3.
Cuadro 9.3. Funciones de comparación
Función Descripción Ejemplo (s) |
---|
Devuelve el número de nonull argumentos.
|
Devuelve el número de null argumentos.
|
Anterior | Hasta | próximo |
9.1. Operadores logicos | Hogar | 9.3. Funciones y operadores matemáticos |
Finalizando este artículo puedes encontrar las explicaciones de otros programadores, tú igualmente tienes la opción de dejar el tuyo si lo crees conveniente.