sql >> Databasteknik >  >> RDS >> SQLite

Returnera rader som endast innehåller icke-alfanumeriska tecken i SQLite

Här är ett exempel på returnerande rader som endast innehåller icke-alfanumeriska tecken i SQLite.

Icke-alfanumeriska tecken inkluderar skiljetecken som [email protected]#&()–[{}]:;',?/* och symboler som `~$^+=<>“ , såväl som blanksteg som mellanslag eller tabbtecken.

Exempeldata

Vi använder följande data för våra exempel:

SELECT c1 FROM t1;

Resultat:

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

Vi kan använda REGEXP operator med ett reguljärt uttryck för att returnera de rader som endast innehåller icke-alfanumeriska tecken:

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

Resultat:

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

I det här fallet täckte inte mitt uteslutningsintervall alfanumeriska tecken som é , É och ø . Följande exempel utökar intervallet för att utesluta dessa tecken från resultatet:

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

Resultat:

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

Vår tabell innehåller också en rad med den tomma strängen. Detta är ett icke-alfanumeriskt tecken, och därför returneras det i ovanstående resultat. Vi kan också använda NULLIF() funktion för att utesluta den tomma strängen från utdata:

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

Resultat:

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

  1. MYSQL importera data från csv med LOAD DATA INFILE

  2. Använder Intel Optane Storage för SQL Server

  3. Skapa en Inline Table-Valued Function (ITVF) i SQL Server

  4. Ska jag skapa en klass som ärver SQLiteOpenHelper för varje tabell i min databas?