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:
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:
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 |
expr { > | >= | < | <= | = | != | ^= | <> } expr
expr pode ser qualquer expressão.
5 > 3 é verdadeiro, 4 != 5 é verdadeiro, 6 >= 9 é falso.
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:
Operador |
Descrição |
|---|---|
> |
Maior que |
>= |
Maior ou igual a |
< |
Menor que |
<= |
Menor que ou igual a |
= |
Igual a |
|
Diferente de |
<> |
Maior ou menor que |
|
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. |
expr
{ = | != | ^= | <> | > | < | >= | <= }
{ ANY | SOME | ALL }
({ expression_list | subquery })
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.
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.
expr [ NOT ] BETWEEN expr AND expr
7 NOT BETWEEN 10 AND 15 é verdadeiro.
As conjunções comparam uma expressão simples com duas condiçõ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. |
expr operator condition1 { AND | OR } condition2
5 < 7 AND 5 > 3 é verdadeiro; 5 < 3 OR 10 < 15 é verdadeiro.
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.
NOT {BETWEEN | IN | LIKE | NULL }
5 IS NOT NULL é verdadeiro; 5 NOT IN (5, 10, 15) é falso.
O operador IS testa as condições especiais, como descrições nulas, infinitos e valores que não são números.
| 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. |
expr IS [ NOT ] NULL
13 IS NOT NULL é verdadeiro.
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.
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:
| 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. |
char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 ) char2 [ ESCAPE esc_char ]
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:
Um caractere sublinhado (_) corresponde a exatamente um caractere (ao invés de um byte em um conjunto de caracteres de vários bytes) no valor.
Um sinal de percentual (%) pode corresponder a zero ou mais caracteres (ao invés de bytes em um conjunto de caracteres de vários bytes) no valor. Um '%' não pode corresponder a nulo.
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 @.
'Ducks' LIKE 'Duck_' e 'Ducky' LIKE 'Duck_' são verdadeiros.
'Duckling' LIKE 'Duck_' é falso.
'Duckling' LIKE 'Duck%' é verdadeiro.
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
REGEXP_LIKE(source_char, pattern
[, match_parameter ]
)
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:
c: Distinção entre maiúsculas e minúsculas.
i: Sem distinção entre maiúsculas e minúsculas.
m: Trata a string de origem como várias linhas. REGEXP_LIKE interpreta ^ e $ como o início e o final, respectivamente, de qualquer linha de qualquer lugar da string de origem, em vez de somente no início e no final de toda a string de origem. Por default, REGEXP_LIKE trata a string de origem como uma única linha.
n: o caractere de nova linha está entre os caracteres correspondidos por um ponto (o caractere curinga). Por default, não está.
x: Ignora caracteres de espaço em branco.
REGEXP_LIKE (first_name, '^Ste(v|ph)en$') corresponde a Steven e Stephen, mas não corresponde a Stevens ou Esteven, em first_name.
Copyright © 2003, 2007, Oracle. Todos os direitos reservados.