Operadores simples de comparación ESQL

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

ESQL proporciona un conjunto completo de operadores de comparación (predicados). Cada uno de ellos compara dos valores escalares y devuelve un valor booleano. Si uno de los operandos es Null, el resultado es Null. De lo contrario, el resultado es verdadero (true) si se satisface la condición y falsa (false) si no se satisface.

Pueden aplicarse operadores de comparación a todos los tipos de datos escalares. Sin embargo, si los dos operandos son de tipos diferentes, se aplican normas especiales. Estas normas se describen en Transformaciones CAST implícitas.

Algunos operadores de comparación también soportan la comparación de filas y listas. Éstos se indican más abajo.

Operador >
El primer operando es mayor que el segundo.
Operador <
El primer operando es menor que el segundo.
Operador >=
El primer operando es mayor o igual que el segundo.
Operador <=
El primer operando es menor o igual que el segundo.
Operador =
El primer operando es igual que el segundo.

Este operador también puede comparar filas y listas. Consulte ROW y LIST comparados para obtener una descripción de la comparación entre lista y fila.

Operador <>
El primer operando no es igual que el segundo.

Este operador también puede comparar filas y listas. Consulte ROW y LIST comparados para obtener una descripción de la comparación entre lista y fila.

El significado de "igual", "menor" y "mayor" en este contexto, es el siguiente:
  • Para los tipos numéricos (INTEGER, FLOAT, DECIMAL), se comparan los valores numéricos. Así, 4,2 es mayor que 2,4 y -2,4 es mayor que -4,2.
  • Para los tipos de fecha y hora (DATE, TIME, TIMESTAMP, GMTTIME, GMTTIMESTAMP pero no INTERVAL), un punto posterior en el tiempo se considera que es mayor que un punto anterior. Así, la fecha 31-03-2004 es mayor que la fecha 24-10-1947.
  • Para el tipo INTERVAL, un intervalo grande de tiempo se considera mayor que un intervalo más pequeño de tiempo.

Para los tipos de serie de caracteres (CHARACTER, BLOB, BIT) la comparación es lexicográfica. Empezando por la izquierda, se comparan los elementos individuales (cada carácter, byte o bit). Si no se encuentra ninguna diferencia, las series de caracteres son iguales. Si se encuentra una diferencia, los valores son mayores si el primer elemento distinto del primer operando es mayor que el elemento correspondiente del segundo, y menores si es menor. En el caso especial en el que dos series de caracteres no tienen la misma longitud pero son iguales en los demás elementos, la serie de caracteres más larga se considera mayor que la más corta. Así:

'ABD' es mayor que 'ABC' 
'ABC' es mayor que 'AB'  
Los espacios blancos en cola no se consideran significativos en las comparaciones entre caracteres. Por tanto, si desea asegurar que dos series de caracteres sean realmente iguales, debe comparar tanto las series en sí como sus longitudes. Por ejemplo:
'ABC  ' es igual que 'ABC'

Tenga en cuenta que comparar cadenas de caracteres de longitud uno es equivalente a comparar caracteres, bytes o bits individuales. Puesto que ESQL no tiene tipos de datos de un solo carácter, byte o bit, es una práctica común utilizar series de longitud uno para comparar un solo carácter, byte o bit.

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 complejos 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
ak01040_