sql >> Base de Datos >  >> RDS >> Sqlserver

Devolver filas que contienen caracteres no alfanuméricos en SQL Server

Estos son ejemplos de filas de retorno que contienen caracteres no alfanuméricos en SQL Server.

Los caracteres no alfanuméricos incluyen caracteres de puntuación como [email protected]#&()–[{}]:;',?/* y símbolos como `~$^+=<>“ , así como caracteres de espacio en blanco como el espacio o los tabuladores.

Datos de muestra

Supongamos que tenemos la siguiente tabla:

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

Ejemplo 1:la fila contiene solo caracteres no alfanuméricos

Aquí hay un ejemplo de código que devuelve filas que contienen solo caracteres no alfanuméricos:

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

Resultado:

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

Ejemplo 2:la fila contiene caracteres no alfanuméricos

Este es un ejemplo de código que devuelve filas que contienen caracteres no alfanuméricos, pero que también pueden contener 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 espacios:

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

Resultado:

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