SQLite - clausola GLOB
SQLite GLOBL'operatore viene utilizzato per confrontare solo i valori di testo con un modello utilizzando caratteri jolly. Se l'espressione di ricerca può essere abbinata all'espressione modello, l'operatore GLOB restituirà true, che è 1. A differenza dell'operatore LIKE, GLOB distingue tra maiuscole e minuscole e segue la sintassi di UNIX per specificare i seguenti caratteri jolly.
- Il segno dell'asterisco (*)
- Il punto interrogativo (?)
Il segno asterisco (*) rappresenta zero o più numeri o caratteri. Il punto interrogativo (?) Rappresenta un singolo numero o carattere.
Sintassi
Di seguito è riportata la sintassi di base di * e ?.
SELECT FROM table_name
WHERE column GLOB 'XXXX*'
or
SELECT FROM table_name
WHERE column GLOB '*XXXX*'
or
SELECT FROM table_name
WHERE column GLOB 'XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '????'
Puoi combinare Nnumero di condizioni che utilizzano operatori AND o OR. Qui, XXXX potrebbe essere qualsiasi valore numerico o stringa.
Esempio
La tabella seguente elenca una serie di esempi che mostrano la parte WHERE con una clausola LIKE diversa con '*' e '?' operatori.
Sr.No. | Dichiarazione e descrizione |
---|---|
1 | WHERE SALARY GLOB '200*' Trova tutti i valori che iniziano con 200 |
2 | WHERE SALARY GLOB '*200*' Trova tutti i valori che hanno 200 in qualsiasi posizione |
3 | WHERE SALARY GLOB '?00*' Trova tutti i valori che hanno 00 nella seconda e terza posizione |
4 | WHERE SALARY GLOB '2??' Trova tutti i valori che iniziano con 2 e sono lunghi almeno 3 caratteri |
5 | WHERE SALARY GLOB '*2' Trova tutti i valori che terminano con 2 |
6 | WHERE SALARY GLOB '?2*3' Trova tutti i valori che hanno un 2 nella seconda posizione e terminano con un 3 |
7 | WHERE SALARY GLOB '2???3' Trova tutti i valori in un numero di cinque cifre che iniziano con 2 e finiscono con 3 |
Facciamo un esempio reale, consideriamo la tabella AZIENDA con i seguenti record:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
Di seguito è riportato un esempio, che visualizzerà tutti i record dalla tabella AZIENDA, dove AGE inizia con 2.
sqlite> SELECT * FROM COMPANY WHERE AGE GLOB '2*';
Questo produrrà il seguente risultato.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
Di seguito è riportato un esempio, che visualizzerà tutti i record dalla tabella AZIENDA dove INDIRIZZO avrà un trattino (-) all'interno del testo -
sqlite> SELECT * FROM COMPANY WHERE ADDRESS GLOB '*-*';
Questo produrrà il seguente risultato.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
6 Kim 22 South-Hall 45000.0