Här är ett exempel på returnerande rader som endast innehåller icke-alfanumeriska tecken i SQLite.
Icke-alfanumeriska tecken inkluderar skiljetecken som example@sqldat.com#&()–[{}]:;',?/* 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 |
| example@sqldat.com |
| 1 + 1 |
| () |
| example@sqldat.com#&()–[{}]:;',?/* |
| `~$^+=<>“ |
| $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 |
+----------------------+
| () |
| example@sqldat.com#&()–[{}]:;',?/* |
| `~$^+=<>“ |
| |
| é |
| É |
| ø |
+----------------------+
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:
()
example@sqldat.com#&()–[{}]:;',?/*
`~$^+=<>“
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:
()
example@sqldat.com#&()–[{}]:;',?/*
`~$^+=<>“