La condizione specifica una combinazione di una o più espressioni e operatori logici (booleani). Nella sintassi delle espressioni OLAP sono disponibili i tipi di condizioni riportati di seguito.
Le condizioni di confronto confrontano un'espressione con un'altra espressione. Il risultato del confronto può essere TRUE, FALSE o NULL.
È possibile utilizzare gli operatori di confronto seguenti:
Operatore |
Descrizione |
|---|---|
> |
Maggiore di |
>= |
Maggiore o uguale a |
< |
Minore di |
<= |
Minore o uguale a |
= |
Uguale a |
|
Diverso da |
<> |
Maggiore o minore di |
expr { > | >= | < | <= | = | != | ^= | <> } expr
expr può essere un'espressione qualsiasi.
5 > 3 è una condizione vera (True), 4 != 5 è vera (True) e 6 >= 9 è falsa (False).
Una condizione di confronto di gruppo specifica un confronto con uno qualsiasi o tutti i membri di una lista o di una subquery.
È possibile utilizzare gli operatori di confronto seguenti:
Operatore |
Descrizione |
|---|---|
> |
Maggiore di |
>= |
Maggiore o uguale a |
< |
Minore di |
<= |
Minore o uguale a |
= |
Uguale a |
|
Diverso da |
<> |
Maggiore o minore di |
|
Restituisce True se uno o più valori della lista corrispondono oppure False se nessun valore corrisponde. |
ALL |
Restituisce True se tutti i valori della lista corrispondono oppure False se uno o più valori non corrispondono. |
expr
{ = | != | ^= | <> | > | < | >= | <= }
{ ANY | SOME | ALL }
({ expression_list | subquery })
5 >= ALL (5, 10, 15) è una condizione vera (True) e 5 <> ANY (5, 10, 15) è vera (True).
(color, size) = SOME (('RED', 'L'), ('GREEN', 'M')) restituisce True per gli elementi grandi di colore rosso e gli elementi medi di colore verde.
L'operatore BETWEEN verifica se un valore rientra in un intervallo specifico di valori. Restituisce True se il valore verificato è maggiore o uguale a un valore minimo e inferiore o uguale a un valore massimo.
expr [ NOT ] BETWEEN expr AND expr
7 NOT BETWEEN 10 AND 15 è una condizione vera (True).
Le congiunzioni confrontano una singola espressione con due condizioni.
Operatore |
Descrizione |
|---|---|
AND |
Restituisce TRUE se entrambe le condizioni sono VERE. Restituisce FALSE se una delle due condizioni è FALSA. Negli altri casi restituisce UNKNOWN. |
OR |
Restituisce TRUE se una delle due condizioni è VERA. Restituisce FALSE se entrambe le condizioni sono FALSE. Negli altri casi restituisce UNKNOWN. |
expr operator condition1 { AND | OR } condition2
5 < 7 AND 5 > 3 è una condizione vera (True); 5 < 3 OR 10 < 15 è vera.
L'operatore NOT inverte il significato di una condizione. Restituisce TRUE se la condizione è FALSA e FALSE se la condizione è VERA. La condizione UNKNOWN (sconosciuta), rimane UNKNOWN.
NOT {BETWEEN | IN | LIKE | NULL }
5 IS NOT NULL è una condizione vera (True), mentre 5 NOT IN (5, 10, 15) è una condizione falsa (False).
L'operatore IS verifica le condizioni speciali, quali ad esempio i valori nulli, l'infinito e i valori che non sono numeri.
| Operatore | Descrizione |
|---|---|
IS INFINITE |
Restituisce TRUE se l'espressione è infinita, altrimenti restituisce FALSE. |
IS NAN |
Restituisce TRUE se l'espressione non è un numero, altrimenti restituisce FALSE. |
IS NULL |
Restituisce TRUE se l'espressione è nulla, altrimenti restituisce FALSE. |
expr IS [ NOT ] NULL
13 IS NOT NULL è una condizione vera (True).
Le condizioni di corrispondenza dei pattern confrontano i dati dei caratteri. A questa categoria appartengono due gruppi di operatori: LIKE e REGEXP_LIKE.
Gli operatori LIKE specificano un test che implica la corrispondenza dei pattern. Mentre l'operatore Uguale a (=) rileva le corrispondenze esatte di un valore di carattere con un altro, gli operatori LIKE sono in grado di rilevare le corrispondenze dei pattern definiti mediante caratteri speciali ("caratteri jolly").
È possibile scegliere gli operatori LIKE riportati di seguito.
| Operatore | Descrizione |
|---|---|
LIKE |
Utilizza i carattere del set di caratteri di input. |
LIKEC |
Utilizza i caratteri completi Unicode e tratta un carattere Unicode supplementare come due caratteri. |
LIKE2 |
Utilizza i punti di codice UCS2 e tratta un carattere Unicode supplementare come carattere singolo. |
LIKE4 |
Utilizza i punti di codice UCS4 e tratta un carattere composto come carattere singolo. |
char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 ) char2 [ ESCAPE esc_char ]
char1 è un'espressione di testo per il valore della ricerca.
char2 è un'espressione di testo per il pattern. Il pattern può contenere i caratteri jolly descritti di seguito.
Il carattere di sottolineatura (_) corrisponde esattamente a un carattere (rispetto a un byte in un set di caratteri multibyte) del valore.
Il segno di percentuale (%) può corrispondere a zero o più caratteri (rispetto a byte in un set di caratteri multibyte) del valore. Un carattere jolly '%' non può corrispondere a un valore nullo.
esc_char è un'espressione di testo, in genere un valore, di lunghezza pari a un carattere. Il carattere di escape identifica un carattere di sottolineatura o un segno di percentuale presenti nel pattern come caratteri normali e non come caratteri jolly. È inoltre possibile cercare il carattere di escape ripetendolo. Ad esempio, se il carattere di escape è @, è possibile utilizzare @% per cercare % e @@ per cercare @.
'Ducks' LIKE 'Duck_' e 'Ducky' LIKE 'Duck_' sono condizioni vere (True).
'Duckling' LIKE 'Duck_' è una condizione falsa (False).
'Duckling' LIKE 'Duck%' è una condizione vera (True).
L'operatore REGEXP_LIKE esegue la corrispondenza di espressioni regolari invece della semplice corrispondenza dei pattern eseguita dall'operatore LIKE. Questo operatore valuta le stringhe utilizzando i caratteri definiti dal set di caratteri di input.
Le espressioni regolari Oracle sono conformi allo standard delle espressioni regolari POSIX (Portable Operating System Interface) IEEE e alle istruzioni Unicode Regular Expression Guidelines di Unicode Consortium. Per ulteriori informazioni sulle espressioni regolari, consultare Oracle Database SQL Reference.
REGEXP_LIKE(source_char, pattern
[, match_parameter ]
)
source_char è l'espressione per la quale verrà eseguita la ricerca. Può essere uno qualsiasi dei tipi di dati CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB e NCLOB.
pattern è l'espressione da ricercare. Si tratta in genere di un valore di testo e può essere uno qualsiasi dei tipi di dati CHAR, VARCHAR2, NCHAR e NVARCHAR2. Può contenere fino a 512 byte.
match_parameter è un valore di testo che consente di modificare il funzionamento predefinito della funzione in relazione alle corrispondenze restituite. È possibile specificare uno o più valori tra quelli indicati di seguito.
c: corrispondenza con distinzione tra maiuscole e minuscole.
i: corrispondenza senza distinzione tra maiuscole e minuscole.
m: consente di considerare la stringa di origine come costituita da più righe. REGEXP_LIKE interpreta ^ e $ rispettivamente come l'inizio e la fine di qualsiasi riga in qualsiasi punto della stringa di origine, piuttosto che soltanto all'inizio o alla fine dell'intera stringa di origine. Per impostazione predefinita REGEXP_LIKE considera la stringa di origine come costituita da una riga singola.
n: il carattere di nuova riga è uno di quelli a cui corrisponde un punto (il carattere jolly). Per impostazione predefinita, non corrisponde.
x: ignora gli spazi vuoti.
REGEXP_LIKE (first_name, '^Ste(v|ph)en$') trova le corrispondenze di Steven e Stephen, ma non di Stevens o Esteven, in first_name.
Copyright © 2003, 2007, Oracle. Tutti i diritti riservati.