Los operadores de comparación de SQL estándar >, <, >=, <=, =, <> están soportados en ESQL para comparar dos valores.
Cuando los tipos de datos de ambos valores no son iguales, se puede efectuar una transformación CAST implícita de uno de ellos al tipo del otro para que pueda realizarse la comparación. En la tabla siguiente, el eje vertical representa el operando de la izquierda y el eje horizontal representa el operando de la derecha.
ukn | bln | int | float | dec | char | time | gtm | date | ts | gts | ivl | blob | bit | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ukn | ||||||||||||||
bln | X | L | ||||||||||||
int | X | R | R | L | ||||||||||
float | L | X | L | L | ||||||||||
dec | L | R | X | L | ||||||||||
chr | R | R | R | R | X | R | R | R | R | R | R1 | R | R | |
tm | L | X | L | |||||||||||
gtm | L | R | X | |||||||||||
dt | L | X | R2 | R2 | ||||||||||
ts | L | L2 | X | L | ||||||||||
gts | L | L2 | R | X | ||||||||||
ivl | L1 | X | ||||||||||||
blb | L | X | ||||||||||||
bit | L | X | ||||||||||||
Notes:
|
No puede definir un orden de clasificación alternativo que, por ejemplo, clasifique por igual los caracteres en mayúsculas y en minúsculas.
Al comparar series de caracteres, los blancos de cola no son significativos, por lo que la comparación 'hola' = 'hola ' devuelve un resultado positivo.
Los valores de fecha y hora se comparan de acuerdo a las normas naturales del calendario gregoriano y el reloj.
Puede comparar el huso horario en el que trabaja con el huso horario GMT. El huso horario GMT se convierte al huso horario local de acuerdo a la diferencia entre el huso horario local y la hora GMT especificada. Al comparar la hora local con la hora GMT, la comparación se basa en la diferencia a una hora dada en una fecha dada.
La conversión se basa siempre en el valor de LOCAL_TIMEZONE. Esto se debe a que las indicaciones horarias GMT sólo se convierten a las indicaciones horarias locales si esto se puede hacer de forma no ambigua. La conversión de una indicación horaria local a una indicación horaria GMT tiene dificultades respecto al tiempo de recorte del horario de verano, y la conversión entre la hora local y la hora GMT (sin información de fecha) tiene que realizarse según el valor LOCAL_TIMEZONE, porque no puede especificar de otro modo cuál es la diferencia entre husos horarios.
Los valores booleanos pueden compararse mediante todos los operadores de comparación normales. El valor TRUE se define mayor que el valor FALSE. La comparación de uno de estos valores con el valor booleano UNKNOWN (que es equivalente a NULL) devuelve un resultado UNKNOWN.
Los intervalos se comparan convirtiendo los dos valores de intervalo a representaciones intermedias,para que ambos intervalos tengan el mismo calificador de intervalo. Los intervalos de año-mes sólo se pueden comparar con otros intervalos de año-mes, y los intervalos de día-segundo sólo con otros intervalos de día-segundo.
Por ejemplo, si un intervalo en minutos como, por ejemplo, INTERVAL '120' MINUTE se compara con un intervalo en días y segundos como, por ejemplo, INTERVAL '0 02:01:00', en primer lugar ambos intervalos se convierten a valores que tienen calificadores de intervalo coherentes que se puedan comparar. Así pues, en este ejemplo, el primer valor se convierte a un intervalo en días y segundos, que da INTERVAL '0 02:00:00', el cual puede compararse con el segundo valor.
Si una serie de caracteres se compara con un valor de otro tipo, WebSphere Business Integration Message Broker intenta efectuar una transformación CAST de la serie de caracteres a un valor del mismo tipo de datos que el otro valor.
'1234' > 4567
Body.Trade.Quantity > 5000
En este ejemplo, la referencia de campo de la izquierda se evalúa como la serie de caracteres '1000' y, dado que se compara con un entero, dicha serie de caracteres se convierte a un entero antes de que se lleve a cabo la comparación.
Todavía debe comprobar si el campo del precio que desea que se interprete como decimal es mayor que un umbral determinado. Asegúrese de que el literal con el que lo compara es un valor decimal y no un entero.
Body.Trade.Price > 100
Body.Trade.Price > 100.00
Conceptos relacionados
ESQL
Tareas relacionadas
Desarrollo de ESQL
Referencia relacionada
Funciones ESQL complejas
Transformaciones soportadas
Transformaciones CAST implícitas
Transformaciones CAST implícitas para operaciones aritméticas
Transformaciones CAST implícitas para asignación
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ak05700_ |