Operadores de comparación ESQL

ESQL proporciona los operadores de comparación siguientes (predicados):

Operador >
El resultado es TRUE si el valor del primer operando es mayor que el del segundo. De lo contrario, el resultado es FALSE (pero vea la nota sobre valores NULL que sigue a esta lista).
Operador <
El resultado es TRUE si el valor del primer operando es menor que el del segundo. De lo contrario, el resultado es FALSE (pero vea la nota sobre valores NULL que sigue a esta lista).
Operador >=
El resultado es TRUE si el valor del primer operando es mayor o igual que el del segundo. De lo contrario, el resultado es FALSE (pero vea la nota sobre valores NULL que sigue a esta lista).
Operador <=
El resultado es TRUE si el valor del primer operando es menor o igual que el del segundo. De lo contrario, el resultado es FALSE (pero vea la nota sobre valores NULL que sigue a esta lista).
Operador =
El resultado es TRUE si el valor del primer operando es igual al del segundo. De lo contrario, el resultado es FALSE (pero vea la nota sobre valores NULL que sigue a esta lista). Este operador puede comparar escalares, filas y listas. Consulte el apartado Comparaciones de ROW y LIST para ver una descripción de la comparación de listas y filas.
Operador <>
El resultado es TRUE si el valor del primer operando no es igual al del segundo. De lo contrario, el resultado es FALSE (pero vea la nota sobre valores NULL que sigue a esta lista). Este operador puede comparar escalares, filas y listas. Consulte el apartado Comparaciones de ROW y LIST para ver una descripción de la comparación de listas y filas.
Operador BETWEEN
El operador BETWEEN permite probar si un valor se encuentra entre dos valores de límite.

Este operador existe en dos formatos, SYMMETRIC y ASYMMETRIC (es el valor por omisión si no se especifica ninguno). El formato SYMMETRIC es equivalente a:

(source >= boundary1 AND source <= boundary2) OR
(source >= boundary2 AND source <= boundary1)

El formato ASYMMETRIC es equivalente a:

source >= boundary1 AND source <= boundary2

El formato ASYMMETRIC es más sencillo pero sólo devuelve el resultado que se espera cuando el primer valor de límite tiene un valor más pequeño que el segundo límite. Sólo es útil cuando las expresiones de condición de límite son literales.

En todos los casos antedichos, si cualquiera de los operandos es NULL, el resultado es UNKNOWN. Si los operandos son de tipos diferentes, se aplican normas especiales. Éstos se describen en el apartado Transformaciones CAST implícitas.

Operador IN
El operador IN permite probar si un valor es igual a uno de una lista de valores.
Leer el esquema de sintaxisOmitir el esquema de sintaxis visual
Operador IN

                               .-,----------.
                               V            |
>>-operando_1--+-----+--IN--(----operando_2-+--)---------------><
               '-NOT-'

El resultado es TRUE si el operando de la izquierda no es NULL y es igual a uno de los operandos de la derecha. El resultado es FALSE si el operando izquierdo no es NULL y no es igual a ninguno de los operandos de la derecha, ninguno de los cuales tiene valores NULL. De lo contrario, el resultado es UNKNOWN. Si los operandos son de tipos diferentes, se aplican normas especiales. Éstos se describen en el apartado Transformaciones CAST implícitas.

Operador LIKE
El operador LIKE busca series que coinciden con un patrón determinado.

El resultado es TRUE si ninguno de los operandos es NULL y el operando de origen (operando_1) coincide con el operando de patrón. El resultado es FALSE si ninguno de los operandos es NULL y el operando de origen no coincide con el operando de patrón. De lo contrario, el resultado es UNKNOWN.

El patrón se especifica con una serie en que los caracteres de porcentaje (%) y subrayado (_) tienen un significado especial:

  • El carácter de subrayado _ coincide con cualquier carácter individual.
    Por ejemplo, la serie siguiente encuentra coincidencias de IBM e IGI, pero no de International Business Machines o IBM Corp:
    Body.Trade.Company LIKE 'I__'
  • El carácter de porcentaje % hace que coincida una serie de cero o más caracteres.
    Por ejemplo, la serie siguiente encuentra coincidencias de IBM, IGI, International Business Machines e IBM Corp:
    Body.Trade.Company LIKE 'I%'

Para utilizar los caracteres de porcentaje y subrayado en las expresiones que han de coincidir, preceda los caracteres con un carácter ESCAPE, que toma por omisión el carácter de barra inclinada invertida (\).

Por ejemplo, el predicado siguiente encuentra una coincidencia para IBM_Corp.

Body.Trade.Company LIKE 'IBM\_Corp'

Puede especificar un carácter de escape diferente mediante la cláusula ESCAPE. Por ejemplo, también podría especificar el ejemplo anterior de la manera siguiente:

Body.Trade.Company LIKE 'IBM$_Corp' ESCAPE '$'
Operador IS
El operador IS permite probar si un valor es NULL.

Incluye los valores de prueba INF, +INF, -INF, NAN (no es un número) y NUM en cualquier combinación de mayúsculas y minúsculas. También se aceptan los formatos alternativos +INFINITY, -INFINITY y NUMBER.

Si se aplica a tipos no numéricos, el resultado es FALSE.

El operador de comparación (=) no lo permite porque el resultado de comparar con NULL es NULL. También permite utilizar una sintaxis más natural al probar valores booleanos.

El resultado es TRUE si el valor del operando de la izquierda es igual (o no igual si está la cláusula NOT) al valor especificado (TRUE, FALSE, UNKNOWN o NULL). De lo contrario, el resultado es FALSE.

Operador EXISTS
El operador EXISTS devuelve un valor booleano que indica si una función SELECT ha devuelto uno o más valores (TRUE) o ninguno (FALSE).
EXISTS(SELECT * FROM algo WHERE predicado)

Conceptos relacionados
Flujos de mensajes
Correlaciones

Tareas relacionadas
Desarrollo de aplicaciones de flujos de mensajes
Desarrollo de ESQL

Referencia relacionada
Nodos incorporados
ESQL
Comparaciones de ROW y LIST
Transformaciones CAST implícitas