SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Zeilen zurückgeben, die nur nicht-alphanumerische Zeichen in SQLite enthalten

Hier ist ein Beispiel für die Rückgabe von Zeilen, die in SQLite nur nicht-alphanumerische Zeichen enthalten.

Nicht-alphanumerische Zeichen umfassen Satzzeichen wie [email protected]#&()–[{}]:;',?/* und Symbole wie `~$^+=<>“ , sowie Whitespace-Zeichen wie Leerzeichen oder Tabulatorzeichen.

Beispieldaten

Wir verwenden die folgenden Daten für unsere Beispiele:

SELECT c1 FROM t1;

Ergebnis:

+----------------------+
| 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                |
+----------------------+

Wir können den REGEXP verwenden Operator mit einem regulären Ausdruck, um die Zeilen zurückzugeben, die nur nicht-alphanumerische Zeichen enthalten:

SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-z0-9]';

Ergebnis:

+----------------------+
| c1                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
|                      |
| é                    |
| É                    |
| ø                    |
+----------------------+

In diesem Fall umfasste mein Ausschlussbereich keine alphanumerischen Zeichen wie é , É , und ø . Das folgende Beispiel erweitert den Bereich, um diese Zeichen aus dem Ergebnis auszuschließen:

SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';

Ergebnis:

()                
[email protected]#&()–[{}]:;',?/*
`~$^+=<>“         
                  

Unsere Tabelle enthält auch eine Zeile mit dem leeren String. Dies ist ein nicht alphanumerisches Zeichen und wird daher im obigen Ergebnis zurückgegeben. Wir können auch das NULLIF() verwenden Funktion, um den leeren String aus der Ausgabe auszuschließen:

SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';

Ergebnis:

()                
[email protected]#&()–[{}]:;',?/*
`~$^+=<>“