sql >> Databáze >  >> RDS >> SQLite

Vraťte řádky, které v SQLite obsahují pouze nealfanumerické znaky

Zde je příklad vrácení řádků, které obsahují pouze nealfanumerické znaky v SQLite.

Nealfanumerické znaky zahrnují interpunkční znaky jako [email protected]#&()–[{}]:;',?/* 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            |
| [email protected]    |
| 1 + 1                |
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
| $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                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
|                      |
| é                    |
| É                    |
| ø                    |
+----------------------+

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:

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

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:

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

  1. Příklady JSON_QUERY() v SQL Server (T-SQL)

  2. Zobrazení zpráv modálního okna v Oracle Forms pomocí Show_Alert

  3. Jak vytvořím seznam oddělený čárkami pomocí dotazu SQL?

  4. Získejte poslední den v měsíci v SQL