Condições

Uma condição especifica uma combinação de uma ou mais expressões e operadores lógicos (Booleanos). A sintaxe da expressão OLAP tem os seguintes tipos de condições:

Condições da Comparação Simples

As condições de comparação comparam uma expressão com a outra. O resultado de tal comparação pode ser TRUE,FALSE ouNULL.

Você pode usar os seguintes operadores de comparação:

Operadores de Comparação Simples
Operador
Descrição
>
Maior que
>=
Maior que ou igual a
<
Menor que
<=
Menor que ou igual a
=
Igual a

!=
^=

Diferente de
<>
Maior ou menor que

Sintaxe

expr { > | >= | < | <= | = | != | ^= | <> } expr 

Argumentos

expr pode ser qualquer expressão.

Exemplos

5 > 3 é verdadeiro, 4 != 5 é verdadeiro, 6 >= 9 é falso.

Condições de Comparação do Grupo

Uma condição de comparação do grupo especifica uma comparação com nenhum ou todos os membros de uma lista ou subconsulta.

Você pode usar os seguintes operadores de comparação:

Operadores de Comparação do Grupo
Operador
Descrição
>
Maior que
>=
Maior ou igual a
<
Menor que
<=
Menor que ou igual a
=
Igual a

!=
^=

Diferente de
<>
Maior ou menor que

ANY
SOME

Retorna Verdadeiro se um ou mais valores da lista forem correspondentes ou retorna Falso se nenhum valor for correspondente.
ALL
Retorna Verdadeiro se todos os valores da lista forem correspondentes, ou Falso se um ou mais valores não forem correspondentes.

Sintaxe

expr
     { = | != | ^= | <> | > | < | >= | <= }
     { ANY | SOME | ALL }
     ({ expression_list | subquery })


Exemplos

5 >= ALL (5, 10, 15) é verdadeiro, 5 <> ANY (5, 10, 15) é verdadeiro.

(cor, tamanho) = SOME (('RED', 'L'), ('GREEN', 'M')) retorna verdadeiro para itens grandes em vermelho e itens médios em verde.

Condições da Faixa

O operador BETWEEN testa se um valor está em uma faixa específica de valores. Ele retorna verdadeiro, se o valor que estiver sendo testado for maior ou igual a um valor baixo e menor ou igual a um valor alto.

Sintaxe

expr [ NOT ] BETWEEN expr AND expr

Exemplo

7 NOT BETWEEN 10 AND 15 é verdadeiro.

Condições Múltiplas

As conjunções comparam uma expressão simples com duas condições.

Conjunções
Operador
Descrição
AND
Retorna TRUE, se as duas condições do componente forem TRUE. Retorna FALSE, se uma for FALSE. Caso contrário, retorna UNKNOWN.
OR
Retorna TRUE se a condição do componente for TRUE. Retorna FALSE se as duas condições forem FALSE. Caso contrário, retorna UNKNOWN.

Sintaxe

expr operator condition1 { AND | OR } condition2 

Exemplo

5 < 7 AND 5 > 3 é verdadeiro; 5 < 3 OR 10 < 15 é verdadeiro.

Negação

O operador NOT reverte o significado de uma condição. Ele retorna TRUE se a condição for FALSE. Ele retorna FALSE se a condição for TRUE. Se ela for UNKNOWN, ele permanece UNKNOWN.

Sintaxe

NOT {BETWEEN | IN | LIKE | NULL }

Exemplo

5 IS NOT NULL é verdadeiro; 5 NOT IN (5, 10, 15) é falso.

Condições Especiais

O operador IS testa as condições especiais, como descrições nulas, infinitos e valores que não são números.

Operadores de Condições Especiais
Operador Descrição
IS INFINITE Retorna TRUE se a expressão for infinita, caso contrário,FALSE.
IS NAN Retorna TRUE se a expressão não for um número, caso contrário, FALSE.
IS NULL Retorna TRUE se a expressão for nula, caso contrário, FALSE.

Sintaxe

expr IS [ NOT ] NULL

Exemplo

13 IS NOT NULL é verdadeiro.

Condições da Correspondência de Padrões

As condições de correspondências de padrões comparam os dados dos caracteres. Há dois grupos de operadores nesta categoria: LIKE e REGEXP_LIKE.

Operadores LIKE

Os operadores LIKE especificam um teste que envolve a correspondência de padrões. Considerando que o operador de igualdade (=) corresponde exatamente um valor do caractere para outro, os operadores LIKE podem corresponder padrões definidos pelos caracteres de correspondência de padrões especiais (curingas).

Você pode escolher um dos seguintes operadores LIKE:

Operadores de Correspondência Padrão LIKE
Operador Descrição
LIKE

Usa caracteres do conjunto de caracteres de entrada.

LIKEC Usa caracteres completos do Unicode. Ele trata um caractere complementar do Unicode como dois caracteres.
LIKE2 Usa pontos de código UCS2. Ele trata um caractere complementar do Unicode como um caractere.
LIKE4 Usa pontos de código UCS4. Ele trata um caractere composto como um caractere.

Sintaxe

char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 )
  char2 [ ESCAPE esc_char ]

Argumentos

charl é uma expressão de texto para o valor de pesquisa.

char2 é uma expressão de texto para o padrão. O padrão pode conter estes caracteres curingas:

esc_char é uma expressão de texto, geralmente um literal, isto é um caractere longo. Este caractere de escape identifica um sublinhado ou um sinal de percentual no padrão, como carateres literais em vez de caracteres curinga. Você também pode procurar o próprio caractere curinga, repetindo-o. Por exemplo, se @ for o caractere de escape, então você pode usar @% para procurar % e @@ para procurar @.

Exemplos

'Ducks' LIKE 'Duck_' e 'Ducky' LIKE 'Duck_' são verdadeiros.

'Duckling' LIKE 'Duck_' é falso.

'Duckling' LIKE 'Duck%' é verdadeiro.

Operador REGEXP_LIKE

REGEXP_LIKE executa a correspondência da expressão regular, em vez da correspondência de padrão simples executada por LIKE. Este operador avalia as strings que usam os caracteres, conforme definido pelo conjunto de caracteres de entrada.

As expressões regulares Oracle atendem ao padrão de expressão regular de POSIX (Portable Operating System Interface) do IEEE e ao Unicode Regular Expression Guidelines do Unicode Consortium. Para obter mais informações sobre expressões regulares, consulte a Referência de SQL do Oracle Database

Sintaxe

REGEXP_LIKE(source_char, pattern
            [, match_parameter ]
           )

Argumentos

source_char é a expressão que será pesquisada. Ela pode ser de qualquer um dos seguintes tipos de dados: CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB ou NCLOB.

pattern é a expressão de pesquisa. Geralmente ela é um literal de texto e pode ser de qualquer um dos seguintes tipos de dados: CHAR, VARCHAR2, NCHAR, ou NVARCHAR2. Ela pode conter até 512 bytes.

match_parameter é um texto que permite alterar o comportamento default de correspondência da função. Você pode especificar um ou mais dos seguintes valores:

Exemplo

REGEXP_LIKE (first_name, '^Ste(v|ph)en$') corresponde a Steven e Stephen, mas não corresponde a Stevens ou Esteven, em first_name.