Operadores de Comparação Simples do ESQL

Este tópico descreve os operadores de comparação simples do ESQL. Para obter informações sobre os operadores de comparação complexa do ESQL, consulte Operadores de Comparação Complexa do ESQL.

O ESQL fornece um conjunto completo de operadores de comparação (predicados). Cada um deles compara dois valores escalares e retorna um Booleano. Se o operando for nulo, o resultado será nulo. Caso contrário, o resultado será verdadeiro se a condição for atendida e falso se ela não for atendida.

Os operadores de comparação podem ser aplicados a todos os tipos de dados escalares. Entretanto, se os dois operandos forem de tipos diferentes, regras especiais serão aplicadas. Eles são descritos na seção Casts Implícitos.

Alguns operadores de comparação também suportam a comparação de linhas e listas. Eles são indicados a seguir.

Operador >
O primeiro operando é maior que o segundo.
Operador <
O primeiro operando é menor que o segundo.
Operador >=
O primeiro operando é maior que ou igual ao segundo.
Operador <=
O primeiro operando é menor que ou igual ao segundo.
Operador =
O primeiro operando é igual ao segundo.

Esse operador também pode comparar linhas e listas. ConsulteComparações de ROW e LIST para obter uma descrição da lista e comparação de linhas.

Operador <>
O primeiro operando não é igual ao segundo.

Esse operador também pode comparar linhas e listas. ConsulteComparações de ROW e LIST para obter uma descrição da lista e comparação de linhas.

Os significados de "igual", "menor" e "maior" neste contexto são os seguintes:
  • Para os tipos numéricos (INTEGER, FLOAT, DECIMAL), os valores numéricos são comparados. Portanto, 4.2 é maior que 2.4 e -2.4 é maior que -4.2.
  • Para os tipos de data/hora (DATE, TIME, TIMESTAMP, GMTTIME, GMTTIMESTAMP mas não INTERVAL), um ponto no tempo posterior é considerado como sendo maior que um ponto no tempo anterior. Portanto, a data 2004-03-31 é maior que a data 1947-10-24.
  • Para o tipo INTERVAL, um intervalo de tempo maior é considerado como sendo maior que um intervalo de tempo menor.

Para os tipos de cadeia (CHARACTER, BLOB, BIT), a comparação é lexicográfica. Iniciando na esquerda, os elementos individuais (cada caractere, byte ou bit) são comparados. Se nenhuma diferença for localizada, as cadeias serão iguais. Se uma diferença for localizada, os valores serão maiores se o primeiro elemento diferente no primeiro operando for maior que o elemento correspondente no segundo e menores se eles forem menores. No caso especial em que duas cadeias são de comprimentos diferentes, mas iguais até um certo ponto, a cadeia mais longa é considerada maior que a mais curta. Portanto:

'ABD' é maior que 'ABC'
'ABC' é maior que 'AB'  
Espaços em branco à direita são considerados insignificantes em comparações de caracteres. Portanto, se você desejar assegurar que duas cadeias sejam realmente iguais, será necessário comparar ambas as cadeias e seus comprimentos. Por exemplo:
'ABC  ' é igual a 'ABC'

Observe que comparar cadeias com um comprimento de um é equivalente a comparar caracteres, bytes ou bits individuais. Como o ESQL não possui tipos de dados de caracteres, bytes ou bits únicos, é uma prática padrão utilizar cadeias de comprimento um para comparar caracteres, bytes ou bits únicos.

Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Visão Geral de Mapeamentos de Mensagens
Tarefas relacionadas
Desenvolvendo Fluxos de Mensagens
Desenvolvendo ESQL
Referências relacionadas
Operadores de Comparação Complexa do ESQL
Nós Internos
Referência de ESQL
Comparações de ROW e LIST
Casts Implícitos
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak01040_