Zde je příklad vrácení řádků, které obsahují pouze nealfanumerické znaky v SQLite.
Nealfanumerické znaky zahrnují interpunkční znaky jako example@sqldat.com#&()–[{}]:;',?/* a symboly jako `~$^+=<>“ , stejně jako mezery, jako jsou mezery nebo tabulátory.
Ukázková data
Pro naše příklady použijeme následující data:
SELECT c1 FROM t1; Výsledek:
+----------------------+
| 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 |
+----------------------+
Můžeme použít REGEXP operátor s regulárním výrazem, který vrátí řádky, které obsahují pouze nealfanumerické znaky:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-z0-9]'; Výsledek:
+----------------------+
| c1 |
+----------------------+
| () |
| example@sqldat.com#&()–[{}]:;',?/* |
| `~$^+=<>“ |
| |
| é |
| É |
| ø |
+----------------------+
V tomto případě můj rozsah vyloučení nezahrnoval alfanumerické znaky jako é , É a ø . Následující příklad rozšiřuje rozsah tak, aby byly tyto znaky z výsledku vyloučeny:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]'; Výsledek:
()
example@sqldat.com#&()–[{}]:;',?/*
`~$^+=<>“
Naše tabulka obsahuje také řádek s prázdným řetězcem. Toto je nealfanumerický znak, a proto je vrácen ve výše uvedeném výsledku. Můžeme také použít NULLIF() funkce k vyloučení prázdného řetězce z výstupu:
SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]'; Výsledek:
()
example@sqldat.com#&()–[{}]:;',?/*
`~$^+=<>“