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.
(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 se describen en Transformaciones CAST implícitas.
EXISTS(SELECT * FROM something WHERE predicate)
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.
El patrón se especifica mediante una serie de caracteres en las que los caracteres de porcentaje (%) y de subrayado (_) tienen un significado especial:
Body.Trade.Company LIKE 'I__'
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 '$'