Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

3 sposoby zwracania wierszy zawierających znaki alfanumeryczne w SQL Server

Oto trzy przykłady zwracania wierszy zawierających znaki alfanumeryczne w SQL Server.

Znaki alfanumeryczne to znaki alfabetyczne i numeryczne.

Przykładowe dane

Załóżmy, że mamy następującą tabelę:

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;

Wynik:

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

Przykład 1:wiersz zawiera dane alfanumeryczne

Poniższy kod zwraca wiersze zawierające znaki alfanumeryczne (może również zawierać znaki inne niż alfanumeryczne):

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

Wynik:

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

Przykład 2:wiersz zawiera TYLKO dane alfanumeryczne

Poniższy kod zwraca wiersze zawierające tylko znaki alfanumeryczne:

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

Wynik:

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

Spacje są uważane za niealfanumeryczne. Możemy uwzględnić spacje, dostosowując kod do następującego:

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

Wynik:

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

Przykład 3:metoda alternatywna

Możemy alternatywnie użyć PATINDEX() funkcja, aby osiągnąć ten sam wynik.

Poniższy kod zwraca wiersze zawierające tylko znaki alfanumeryczne:

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

Wynik:

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

Oraz ze spacjami:

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest serwer SQL? (Definicja, Wersje, Edycje)

  2. „Zapytanie niedozwolone w Waitfor” Błąd 101 w SQL Server

  3. Jak wygenerować skrypty upuszczania unikalnych ograniczeń w bazie danych SQL Server — samouczek SQL Server / TSQL część 99

  4. Jak połączyć się z SQL Server za pomocą sqlalchemy przy użyciu uwierzytelniania systemu Windows?

  5. Jak połączyć serwer sql z php za pomocą xampp?