Formulare le condizioni di filtro (dall'help di Libre Office Base 4.3.2)
Per formulare le condizioni di filtro potete utilizzare vari comandi e operatori. Oltre agli operatori relazionali,
esistono comandi specifici di SQL che ricercano nel contenuto dei campi del database. Utilizzando questi
comandi nella sintassi di LibreOffice, quest'ultimo li converte automaticamente nella sintassi SQL
corrispondente. Potete anche inserire direttamente il comando SQL. Le tabelle seguenti riassumono gli operatori
e i comandi disponibili:
Operatore Significato
La condizione è soddisfatta se...
... il contenuto del campo è uguale all'espressione indicata.
=
è uguale
L'operatore = non viene visualizzato nei campi di ricerca; se digitate un valore
senza operatore, viene accettato l'operatore =.
<>
è diverso
... il contenuto del campo non corrisponde all'espressione indicata.
>
è maggiore
... il contenuto del campo è maggiore dell'espressione indicata.
<
è minore
... il contenuto del campo è minore dell'espressione indicata.
è maggiore
>=
... il contenuto del campo è maggiore o uguale all'espressione indicata.
uguale
è minore
<=
... il contenuto del campo è minore o uguale all'espressione indicata.
uguale
Comando di
LibreOffice
Comando SQL Significato
È VUOTO
È ZERO
è zero
NON È VUOTO
NON È ZERO
non è vuoto
COME
(segnaposto * per
qualsiasi numero di
caratteri
Segnaposto ? per un
solo carattere)
COME
(segnaposto %
per qualsiasi
numero di
è parte
caratteri
integrante di
segnaposto _
per un solo
esatto carattere)
NON COME
TRA x E y
NON TRA x E y
non è parte
integrante di
è compreso
TRA x E y
nell'intervallo
[x,y]
non è compreso
NON TRA x E
nell'intervallo
y
[x,y]
NON COME
IN (a; b; c...)
Fate attenzione al
punto e virgola come IN (a, b, c...)
separatore in tutti gli
elenchi valori.
NOT IN (a, b,
NON IN (a; b; c...)
c...)
La condizione è soddisfatta se...
... il campo di dati è vuoto. Nei campi Sì/No con tre
stati questo comando esamina lo stato indefinito (né sì,
né no).
...il campo di dati non è vuoto.
... il campo di dati contiene l'espressione indicata. I
segnaposto (*) indicano qui se l'espressione x compare
all'inizio (x*), alla fine (*x) o all'interno del contenuto
del campo (*x*). Nelle ricerche SQL potete digitare
come segnaposto il carattere SQL %, mentre
nell'interfaccia di LibreOffice è necessario digitare i
segnaposto tipici del file system (*).
Il segnaposto * o % viene utilizzato a piacere per molti
caratteri. Nell'interfaccia di LibreOffice il punto
interrogativo (?) viene utilizzato come segnaposto per
un solo carattere, mentre nelle ricerche SQL viene
utilizzato il carattere (_).
... il campo di dati non contiene l'espressione indicata.
... il campo di dati contiene un valore, compreso tra i
due valori x e y.
... il campo di dati contiene un valore che non è
compreso tra i due valori x e y.
... il campo di dati contiene una delle espressioni
indicate a, b, c,... . È possibile indicare a piacere più
contiene a, b,
espressioni, il risultato della ricerca viene comunicato
c...
con un collegamento O. Le espressioni a, b, c...
possono essere sia numeri, sia caratteri.
non contiene a, ... il campo di dati non contiene una delle espressioni
b, c...
indicate a, b, c,...
= VERO
= VERO
= FALSO
= FALSO
Esempi
='Donna'
<'2001-01-10'
COME 'd?re'
COME 'S*'
ha il valore
True
ha il valore
false
... il campo di dati ha il valore True.
... il campo di dati ha il valore False.
restituisce campi di dati con il contenuto di campo "Donna".
returns dates that occurred before January 10, 2001"
restituisce i nomi dei campi il cui contenuto è "dire" o "dare".
restituisce campi di dati con contenuti di campo come "Sun".
restituisce campi di dati con i contenuti di campo tra i valori 10 e 20. (In questo caso può
TRA 10 E 20
trattarsi sia di campi di testo, che di campi numerici).
restituisce dati di campo con i valori 1, 3, 5, 7. Se ad esempio il campo di dati contiene un
IN (1; 3; 5; 7)
numero di articolo, potete creare una ricerca che restituisce l'articolo specifico per il numero
3; 5; 7)
indicato.
NON IN
restituisce campi di dati che non contengono "Rossi".
('Rossi')
Like Escape Sequence: {escape 'escape-character'}
Esempio: select * from Articolo where NomeArticolo like 'The *%' {escape '*'}
L'esempio restituisce tutte le voci nelle quali il nome dell'articolo inizia con 'The *'. In questo modo potete
cercare anche caratteri che altrimenti vengono interpretati come segnaposto, quali *, ?, _, % o il punto.
Outer Join Escape Sequence: {oj outer-join}
Esempio: select Articolo.* from {oj Articolo LEFT OUTER JOIN ordini ON Nr. articolo=Ordini.ANR}
Ricercare campi di testo
Per esaminare il contenuto di un campo di testo, dovete impostare l'espressione all'interno delle virgolette
semplici. Non viene fatta alcuna differenza tra le maiuscole e le minuscole. LIKE, per definizione, distingue tra
maiuscole e minuscole (sebbene alcuni database non lo considerino in maniera così ristretta).
Ricercare campi data
I campi data sono rappresentati nella forma #Date# per essere chiaramente identificabili. La condizione della
data verrà riprodotta nell'istruzione SQL risultante in conformità con il seguente formato ODBC:
Date Type
SQL Escape syntax #1 - may be
SQL Escape syntax #2
SQL2 syntax
Element
obsolete
Date
{D'YYYY-MM-DD'}
{d 'YYYY-MM-DD'}
'YYYY-MM-DD'
Time
{D'HH:MM:SS'}
{t 'HH:MI:SS[.SS]'}
'HH:MI:SS[.SS]'
{D'YYYY-MM-DD
{ts 'YYYY-MM-DD
'YYYY-MM-DD
DateTime
HH:MM:SS'}
HH:MI:SS[.SS]'}
HH:MI:SS[.SS]'
Esempio: select {d '1999-12-31'} from world.years
Example: select * from mytable where years='1999-12-31'
Anche per filtrare in base a una data dovete impostare l'espressione all'interno di virgolette semplici. Sono
disponibili i seguenti formati: AAAA-MM-GG HH:MM:SS, AAAA/MM/GG HH:MM:SS e AAAA.MM.GG
HH:MM:SS
Ricercare campi Sì/No
Per eseguire ricerche nei campi Sì/No nelle tabelle dBase, utilizzate la seguente sintassi:
Stato Criterio di ricerca
Esempio
per le tabelle dBASE: non
=1 restituisce tutti i record di dati nei quali il campo Sì/No ha la
Sì
uguale a qualsiasi valore dato condizione "Sì" o "on" (contrassegno nero).
=0 restituisce tutti i campi di dati nei quali il campo Sì/No ha la
No
.
condizione "No" o "off" (nessun contrassegno).
È ZERO restituisce tutti i record di dati nei quali il campo Sì/No non ha
Vuoto È ZERO
nessuna delle due condizioni Sì o No (contrassegno grigio).
La sintassi dipende dal sistema di database utilizzato. Osservate anche che i campi Sì/No possono essere
definiti in modo differente (con solo 2 stati invece di 3).
Ricerche di parametri
Per creare una ricerca con parametri variabili, dovete collocare la variabile tra parentesi quadre (=[x]). Oppure,
potete usare un segno di uguale seguito da due punti (=:x). Al momento dell'esecuzione della ricerca, il
programma presenterà una finestra di dialogo per chiedere l'espressione a cui assegnare la variabile x.
Se la ricerca deve essere eseguita su più parametri simultaneamente, la finestra di dialogo conterrà un elenco dei
parametri in oggetto con una riga di digitazione accanto ad ognuno. Inserite i valori desiderati, preferibilmente
dall'alto in basso, e premete Invio dopo ogni riga.
Le ricerche sui parametri non accettano i segnaposto (*, _) o i caratteri speciali (ad esempio, ?).
Se formulate una ricerca basata su parametri e la salvate con le variabili corrispondenti, potrete successivamente
creare una nuova ricerca sostituendo solo le variabili con le espressioni desiderate. LibreOffice richiederà
queste variabili con una finestra di dialogo al momento della sua esecuzione.
Specifica parametro
La finestra di dialogo Specifica parametro richiede di specificare le variabili definite nella ricerca. Digitate un
valore per ogni variabile e confermate facendo clic su OK.
Le ricerche basate su parametri vengono usate anche per i formulari secondari, i quali possono contenere solo
ricerche in cui i valori da richiamare siano letti internamente da una variabile.
In un'istruzione SQL una ricerca parametro si presenta nel modo seguente:
select * from 'indirizzi' where 'nome' = :placeholder
Modo SQL
SQL è l'abbreviazione di "Structured Query Language" e descrive le istruzioni per cercare, aggiornare e gestire
database relazionali.
In LibreOffice, per la maggior parte delle ricerche non è necessario che conosciate il linguaggio SQL, poiché
non dovete inserire il codice SQL. Se create una ricerca nella struttura, LibreOffice converte automaticamente
le vostre istruzioni nella sintassi SQL corrispondente. Attivando la vista SQL con il pulsante Vista struttura
sì/no, potete vedere i comandi SQL per le ricerche create in precedenza.
Potete formulare la ricerca direttamente in codice SQL. In questo caso è opportuno ricordare che la sintassi
speciale dipende dal sistema di database in uso.
Se inserite manualmente il codice SQL, potete creare ricerche SQL specifiche che non devono essere supportate
dall'interfaccia grafica della struttura di ricerca. Queste ricerche devono essere eseguite in modalità SQL
nativa.