WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Operadores complejos de comparación ESQL

ESQL da soporte a varios operadores para tareas de comparación complejas.

Si desea utilizar ESQL para realizar una comparación simple, consulte Operadores simples de comparación ESQL.

Operador BETWEEN
Utilice el operador BETWEEN para probar si un valor está entre dos valores límite.
Leer el esquema de sintaxisOmitir el esquema de sintaxis visual
Operador BETWEEN

                                .-ASYMMETRIC-.   
>>-expresión--+-----+--BETWEEN--+------------+------------------>
              '-NOT-'           '-SYMMETRIC--'   

>--puntoFinal_1--AND--puntoFinal_2-----------------------------><

Este operador tiene dos formatos, SYMMETRIC y ASYMMETRIC (que es el valor predeterminado, 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. Es útil sólo cuando las expresiones de condición 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
Leer el esquema de sintaxisOmitir el esquema de sintaxis visual
Operador EXISTS

>>-Operando--(--ExpresiónLista--)------------------------------><

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
Utilice el operador IN para comprobar 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 de la izquierda no es NULL y no es igual a uno o más de los operandos de la derecha, ninguno de los cuales tiene un valor 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.

El valor operand_1 se debe evaluar en un valor escalar. El valor operand_2 puede ser una secuencia de expresiones que devuelve valores escalares de tipos comparables con operand_1 o puede ser una expresión única que devuelve un valor LIST. Si el valor LIST es un valor que se devuelve de una función SELECT, solamente podrá haber una columna en SelectClause y cada ROW de esa columna se comparará con operand_1 en cuanto a su igualdad.

Los ejemplos siguientes muestran una secuencia de expresiones.
  • Result1 se ha establecido en TRUE porque 30 no aparece en la lista en cuestión:
    SET OutputRoot.XMLNSC.Top.Result1 = 30 NOT IN(34, 42, 45)
  • Result2 se ha establecido en TRUE si el valor de var1 se ha encontrado en var2, var3 o var4:
    SET OutputRoot.XMLNSC.Top.Result2 = var1 IN(var2, var3, var4);
Los ejemplos siguientes muestran una lista que contiene una sola columna.
  • Result3 se ha establecido en TRUE si 42 se ha encontrado en el conjunto de resultados devuelto de una sentencia SELECT:
    SET OutputRoot.XMLNSC.Top.Result3 = 42 IN(
        SELECT A FROM InputRoot.XMLNSC.Top.a[] AS A);
  • Result4 se ha establecido en TRUE porque 42 está en la lista en cuestión:
    SET OutputRoot.XMLNSC.Top.Result4 = 42 IN(
        LIST{34,36,37,38,39,40,41,42,43,44});
  • Result5 se ha establecido en TRUE si var1 se ha encontrado en uno de los elementos 'test' de repetición o en su hijo inmediato, si lo hay:
    SET OutputRoot.XMLNSC.Top.Result5 = var1 IN(
        InputRoot.XMLNSC.Top.test[]);
Operador IS
Utilice el operador IS para comprobar si una expresión ha devuelto un valor especial.
Leer el esquema de sintaxisOmitir el esquema de sintaxis visual
Operador IS

                           .-TRUE-------.   
>>-Operando --IS--+-----+--+-FALSE------+----------------------><
                  '-NOT-'  +-INF--------+   
                           +-+INF-------+   
                           +- -INF------+   
                           +-INFINITY---+   
                           +-+INFINITY--+   
                           +- -INFINITY-+   
                           +-NAN--------+   
                           +-NULL-------+   
                           +-NUM--------+   
                           +-NUMBER-----+   
                           '-UNKNOWN----'   

El propósito principal del operador IS es probar si un valor es NULL. No puede utilizar el operador de comparación (=) para comprobar un valor NULL porque el resultado de comparar cualquier valor con NULL es NULL.

También puede utilizar el operando IS para probar los valores booleanos TRUE y FALSE, y para probar los valores decimales para valores especiales. Estos valores se indican mediante INF, +INF, -INF, NAN (no un número) y NUM (un número válido) en mayúsculas, minúsculas o una 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
Utilice el operador LIKE para buscar series de caracteres que coincidan con un determinado patrón.
Leer el esquema de sintaxisOmitir el esquema de sintaxis visual
Operador LIKE

>>-origen--+-----+--LIKE--patrón--+-------------------+--------><
           '-NOT-'                '-ESCAPE--CarEscape-'   

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 un carácter individual.
    Por ejemplo, el código siguiente busca IBM® e IGI, pero no International Business Machines o 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, la frase siguiente busca coincidencias para 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 podría especificar el ejemplo anterior de este modo:

Body.Trade.Company LIKE 'IBM$_Corp' ESCAPE '$'
Operador SINGULAR
Leer el esquema de sintaxisOmitir el esquema de sintaxis visual
Operador SINGULAR

>>-Operando--(--ExpresiónLista--)------------------------------><

El operador SINGULAR devuelve el valor booleano TRUE si la lista tiene exactamente un elemento; de lo contrario, devuelve FALSE.
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:59:51


Tema de referenciaTema de referencia | Versión 8.0.0.5 | ak01045_