Operadores complejos de comparación ESQL

En este tema se describen los operadores complejos de comparación (predicados) de ESQL. Para obtener información sobre los operadores simples de comparación ESQL, consulte Operadores simples de comparación ESQL.

Operador BETWEEN
El operador BETWEEN le permite comprobar si un valor está entre dos VALORES LíMITE.

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

(origen >= límite1 AND origen <= límite2) OR
(origen >= límite2 AND origen <= límite1)

El formato ASYMMETRIC es equivalente a:

origen >= límite1 AND origen <= límite2

El formato ASYMMETRIC es más sencillo pero sólo devuelve el resultado que espera cuando el primer valor de límite tiene un valor menor que el segundo límite. Sólo resulta útil cuando las expresiones de condiciones de límite son literales.

Si los operandos son de tipos diferentes, se aplican normas especiales. Estas normas se describen en Transformaciones CAST implícitas.

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 something WHERE predicate)
Operador IN
EL OPERADOR IN LE PERMITE COMPROBAR SI UN VALOR ES IGUAL A UNO CONTENIDO EN UNA LISTA DE VALORES.

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 de la izquierda no es NULL y no es igual a ninguno de los operandos de la derecha, de los cuales ninguno es NULL. De lo contrario, el resultado es UNKNOWN. Si los operandos son de tipos diferentes, se aplican normas especiales. Estas normas se describen en Transformaciones CAST implícitas.

Operador IS
El operador IS le permite comprobar si una expresión ha devuelto un VALOR ESPECIAL.

El propósito principal del operador IS es comprobar si un valor es NULL. El operador de comparación (=) no lo permite porque el resultado de comparar algo con NULL es NULL.

IS también le permite probar los valores booleanos TRUE y FALSE, y probar los valores decimales para valores especiales. Estos se indican mediante INF, +INF, -INF, NAN (no un número) y NUM (un número válido) en cualquier combinación de mayúsculas y minúsculas. También se aceptan los formatos alternativos +INFINITY, -INFINITY y NUMBER.

si se aplican a tipos no numéricos, el resultado es FALSE.

Operador LIKE
EL OPERADOR LIKE BUSCA LAS SERIES DE CARACTERES QUE COINCIDEN CON DETERMINADO PATRóN.

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

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

  • El carácter de subrayado _ coincide con cualquier carácter individual.
    Por ejemplo, el código siguiente busca IBM e IGI, pero no International Business Machines ni IBM Corp:
    Body.Trade.Company LIKE 'I__'
  • El carácter de porcentaje % coincide con una serie de caracteres de cero o más caracteres.
    Por ejemplo, el código siguiente busca IBM, IGI, International Business Machines e IBM Corp:
    Body.Trade.Company LIKE 'I%'

Para utilizar los caracteres de porcentaje y subrayado contenidos en expresiones que puedan coincidir, añada el carácter de ESCAPE como prefijo a los caracteres, el cual por omisión es la barra invertida (\).

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

Body.Trade.Company LIKE 'IBM\_Corp'

Puede especificar un carácter de escape diferente utilizando la cláusula ESCAPE. Por ejemplo, también puede especificar el ejemplo anterior de este modo:

Body.Trade.Company LIKE 'IBM$_Corp' ESCAPE '$'
Operador SINGULAR
El operador SINGULAR devuelve el valor booleano TRUE si la lista tiene exactamente un elemento; de lo contrario, devuelve FALSE.
Conceptos relacionados
Visión general de flujos de mensajes
Visión general de las correlaciones de mensajes
Tareas relacionadas
Desarrollar flujos de mensajes
Desarrollo de ESQL
Referencia relacionada
Operadores simples de comparación ESQL
Nodos incorporados
Referencia de ESQL
ROW y LIST comparados
Transformaciones CAST implícitas
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak01045_