Ecco un esempio di restituzione di righe che contengono solo caratteri non alfanumerici in SQLite.
I caratteri non alfanumerici includono segni di punteggiatura come [email protected]#&()–[{}]:;',?/*
e simboli come `~$^+=<>“
, oltre a spazi bianchi come spazi o caratteri di tabulazione.
Dati campione
Utilizzeremo i seguenti dati per i nostri esempi:
SELECT c1 FROM t1;
Risultato:
+----------------------+ | c1 | +----------------------+ | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | [email protected] | | 1 + 1 | | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | $1.50 | | Player 456 | | 007 | | NULL | | | | é | | É | | é 123 | | ø | | ø 123 | +----------------------+
Possiamo usare il REGEXP
operatore con un'espressione regolare per restituire le righe che contengono solo caratteri non alfanumerici:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-z0-9]';
Risultato:
+----------------------+ | c1 | +----------------------+ | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | | | é | | É | | ø | +----------------------+
In questo caso, il mio intervallo di esclusione non copriva i caratteri alfanumerici come é
, É
e ø
. L'esempio seguente espande l'intervallo per escludere quei caratteri dal risultato:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';
Risultato:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“
La nostra tabella contiene anche una riga con la stringa vuota. Questo è un carattere non alfanumerico e quindi viene restituito nel risultato precedente. Possiamo anche usare il NULLIF()
funzione per escludere la stringa vuota dall'output:
SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';
Risultato:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“