sql >> Database >  >> RDS >> SQLite

Rijen retourneren die alleen niet-alfanumerieke tekens bevatten in SQLite

Hier is een voorbeeld van het retourneren van rijen die alleen niet-alfanumerieke tekens bevatten in SQLite.

Niet-alfanumerieke tekens omvatten leestekens zoals [email protected]#&()–[{}]:;',?/* en symbolen zoals `~$^+=<>“ , evenals witruimtetekens zoals de spatie of tabtekens.

Voorbeeldgegevens

We gebruiken de volgende gegevens voor onze voorbeelden:

SELECT c1 FROM t1;

Resultaat:

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

We kunnen de REGEXP . gebruiken operator met een reguliere expressie om de rijen te retourneren die alleen niet-alfanumerieke tekens bevatten:

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

Resultaat:

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

In dit geval omvatte mijn uitsluitingsbereik geen alfanumerieke tekens zoals é , É , en ø . Het volgende voorbeeld breidt het bereik uit om die tekens uit het resultaat uit te sluiten:

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

Resultaat:

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

Onze tabel bevat ook een rij met de lege string. Dit is een niet-alfanumeriek teken en wordt daarom geretourneerd in het bovenstaande resultaat. We kunnen ook de NULLIF() . gebruiken functie om de lege string uit te sluiten van de uitvoer:

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

Resultaat:

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

  1. Oracle SqlPlus - uitvoer opslaan in een bestand maar niet op het scherm weergeven

  2. Hoe een tabel naar CSV te exporteren met Oracle SQL Developer?

  3. Inleiding tot tijdelijke tabellen in SQL Server

  4. Leg JOIN vs. LEFT JOIN en WHERE conditie prestatiesuggestie in meer detail uit