Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

3 Möglichkeiten, Zeilen zurückzugeben, die alphanumerische Zeichen in SQL Server enthalten

Hier sind drei Beispiele für zurückgegebene Zeilen, die alphanumerische Zeichen in SQL Server enthalten.

Alphanumerische Zeichen sind alphabetische und numerische Zeichen.

Beispieldaten

Angenommen, wir haben die folgende Tabelle:

CREATE TABLE t1 (
    c1 varchar(255) NULL
    );

INSERT INTO t1 VALUES
    ('Music'),
    ('Live Music'),
    ('Café'),
    ('Café Del Mar'),
    ('100 Cafés'),
    ('[email protected]'),
    ('1 + 1'),
    ('()'),
    ('[email protected]#&()–[{}]:;'',?/*'),
    ('`~$^+=<>“'),
    ('$1.50'),
    ('Player 456'),
    ('007'),
    (null),
    (''),
    ('é'),
    ('É'),
    ('é 123'),
    ('ø'),
    ('ø 123');
SELECT c1 FROM t1;

Ergebnis:

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

Beispiel 1:Zeile enthält alphanumerische Daten

Der folgende Code gibt Zeilen zurück, die alphanumerische Zeichen enthalten (und möglicherweise auch nicht-alphanumerische Zeichen enthalten):

SELECT c1 FROM t1
WHERE c1 LIKE '%[a-zA-Z0-9]%';

Ergebnis:

+-------------------+
| c1                |
|-------------------|
| Music             |
| Live Music        |
| Café              |
| Café Del Mar      |
| 100 Cafés         |
| [email protected] |
| 1 + 1             |
| $1.50             |
| Player 456        |
| 007               |
| é                 |
| É                 |
| é 123             |
| ø                 |
| ø 123             |
+-------------------+

Beispiel 2:Zeile enthält NUR alphanumerische Daten

Der folgende Code gibt Zeilen zurück, die nur alphanumerische Zeichen enthalten:

SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[^a-zA-Z0-9]%'
AND c1 LIKE '%[a-zA-Z0-9]%';

Ergebnis:

+-------+
| c1    |
|-------|
| Music |
| Café  |
| 007   |
| é     |
| É     |
| ø     |
+-------+

Leerzeichen gelten als nicht alphanumerisch. Wir können Leerzeichen einfügen, indem wir den Code wie folgt anpassen:

SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[^a-zA-Z0-9 ]%'
AND c1 LIKE '%[a-zA-Z0-9 ]%';

Ergebnis:

+--------------+
| c1           |
|--------------|
| Music        |
| Live Music   |
| Café         |
| Café Del Mar |
| 100 Cafés    |
| Player 456   |
| 007          |
| é            |
| É            |
| é 123        |
| ø            |
| ø 123        |
+--------------+

Beispiel 3:Eine alternative Methode

Wir können alternativ den PATINDEX() verwenden Funktion, um das gleiche Ergebnis zu erzielen.

Der folgende Code gibt Zeilen zurück, die nur alphanumerische Zeichen enthalten:

SELECT c1 FROM t1
WHERE PATINDEX('%[^0-9a-zA-Z]%', c1) = 0 
AND PATINDEX('%[a-zA-Z0-9]%', c1) > 0;

Ergebnis:

+-------+
| c1    |
|-------|
| Music |
| Café  |
| 007   |
| é     |
| É     |
| ø     |
+-------+

Und mit Leerzeichen:

SELECT c1 FROM t1
WHERE PATINDEX('%[^0-9a-zA-Z ]%', c1) = 0 
AND PATINDEX('%[a-zA-Z0-9 ]%', c1) > 0;

Ergebnis:

+--------------+
| c1           |
|--------------|
| Music        |
| Live Music   |
| Café         |
| Café Del Mar |
| 100 Cafés    |
| Player 456   |
| 007          |
| é            |
| É            |
| é 123        |
| ø            |
| ø 123        |
+--------------+