O ESQL fornece os seguintes operadores de comparação (predicados):
Este operador existe em dois formatos, SYMMETRIC e ASYMMETRIC (o padrão se nenhum for especificado). O formato SYMMETRIC é equivalente a:
(source >= boundary1 AND source <= boundary2) OR (source >= boundary2 AND source <= boundary1)
O formato ASYMMETRIC é equivalente a:
source >= boundary1 AND source <= boundary2
O formato ASYMMETRIC é mais simples, mas retorna apenas o resultado esperado quando o primeiro valor de limite tiver um valor menor do que o segundo valor de limite. Ele é útil apenas quando as expressões de condição de limite são literais.
Em todos os casos acima, se qualquer um dos operandos for NULL, o resultado será UNKNOWN. Se os operandos possuem tipos diferentes, as regras especiais se aplicam. Eles são descritos na seção Casts Implícitos.
Operador IN .-,---------. V | >>-operand_1--+-----+--IN--(----operand_2-+--)----------------->< '-NOT-'
O resultado será TRUE se o operando esquerdo não for NULL e for igual a um dos operados direitos. O resultado será FALSE se o operando esquerdo não for NULL e não for igual a nenhum dos operadores direitos, nenhum dos quais possui valores NULL. De outra maneira, o resultado será UNKNOWN. Se os operandos possuem tipos diferentes, as regras especiais se aplicam. Eles são descritos na seção Casts Implícitos.
O resultado será TRUE caso nenhum dos operandos seja NULL e o operando de origem (operand_1) corresponda ao operando do padrão. O resultado será FALSE se nenhum dos operandos for NULL e o operando de origem não corresponder ao operando padrão. De outra maneira, o resultado será UNKNOWN.
O padrão é especificado por uma cadeia na qual os caracteres porcentagem (%) e sublinhado (_) podem ser utilizados para ter significado especial:
Body.Trade.Company LIKE 'I__'
Body.Trade.Company LIKE 'I%'
Para utilizar os caracteres porcentagem e sublinhado nas expressões que devem ser correspondidas, preceda-os com um caractere ESCAPE, que assume como padrão o caractere barra invertida (\).
Por exemplo, o predicado a seguir localiza uma correspondência para IBM_Corp.
Body.Trade.Company LIKE 'IBM\_Corp'
Você pode especificar um caractere de escape diferente, utilizando a cláusula ESCAPE. Por exemplo, você também pode especificar o exemplo anterior da seguinte forma:
Body.Trade.Company LIKE 'IBM$_Corp' ESCAPE '$'
Isso inclui os valores de teste INF, +INF, -INF, NAN (sem ser um número) e NUM em qualquer combinação de maiúsculas e minúsculas. As formas alternativas +INFINITY, -INFINITY e NUMBER também são aceitas.
Se aplicado em tipos não-numéricos, o resultado será FALSE.
O operador de comparação (=) não permite isso, porque o resultado da comparação com NULL é NULL. Ele também permite utilizar uma sintaxe em inglês mais natural ao testar valores boolean.
O resultado será TRUE se o valor do operando esquerdo for igual (ou diferente se a cláusula NOT estiver presente) ao valor especificado (TRUE, FALSE, UNKNOWN ou NULL). De outra maneira, o resultado será FALSE.
EXISTS(SELECT * FROM alguma coisa WHERE predicado)
Conceitos relacionados
Fluxos de Mensagem
Mapeamentos
Tarefas relacionadas
Desenvolvendo Aplicativos do Fluxo de Mensagens
Desenvolvendo ESQL
Referências relacionadas
Nós Internos
ESQL
Comparações de ROW e LIST
Casts Implícitos
Avisos |
Marcas |
Downloads |
Biblioteca |
Suporte |
Feedback
![]() ![]() |
ak01040_ |