Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Retornar linhas que contêm caracteres não alfanuméricos no SQL Server


Aqui estão exemplos de linhas de retorno que contêm caracteres não alfanuméricos no SQL Server.

Caracteres não alfanuméricos incluem caracteres de pontuação como [email protected]#&()–[{}]:;',?/* e símbolos como `~$^+=<>“ , bem como caracteres de espaço em branco, como os caracteres de espaço ou tabulação.

Dados de amostra


Suponha que temos a seguinte tabela:
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;

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

Exemplo 1:a linha contém apenas caracteres não alfanuméricos


Aqui está um exemplo de código que retorna linhas que contêm apenas caracteres não alfanuméricos:
SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[a-zA-Z0-9]%';

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

Exemplo 2:a linha contém caracteres não alfanuméricos


Aqui está um exemplo de código que retorna linhas que contêm caracteres não alfanuméricos, mas também podem conter caracteres alfanuméricos:
SELECT c1 FROM t1
WHERE c1 LIKE '%[^a-zA-Z0-9]%';

Resultado:
+--------------------+
| c1                 |
|--------------------|
| Live Music         |
| Café Del Mar       |
| 100 Cafés          |
| [email protected]  |
| 1 + 1              |
| ()                 |
| [email protected]#&()–[{}]:;',?/* |
| `~$^+=<>“          |
| $1.50              |
| Player 456         |
| é 123              |
| ø 123              |
+--------------------+

Para excluir espaços:
SELECT c1 FROM t1
WHERE c1 LIKE '%[^a-zA-Z0-9 ]%';

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