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

Cómo obtener valores que no contienen números en SQL Server

Si tiene una columna en una tabla de base de datos de SQL Server que contiene datos de caracteres, pero algunas filas también contienen números dentro de esos datos, puede usar la siguiente técnica para devolver solo aquellas filas que no contienen números.

Los números se pueden representar con palabras y otros símbolos, pero para los fines de este artículo, "número" significa "dígito numérico". Así que estamos encontrando valores que no contienen dígitos numéricos.

Ejemplo

Supongamos que tenemos una columna con los siguientes datos:

SELECT ProductName 
FROM Products;

Resultado:

+-------------------------------------+
| ProductName                         |
|-------------------------------------|
| Left handed screwdriver             |
| Long Weight (blue)                  |
| Long Weight (green)                 |
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Straw Dog Box                       |
| Bottomless Coffee Mugs (4 Pack)     |
| Right handed screwdriver            |
+-------------------------------------+

Esta columna contiene datos de caracteres, pero algunas filas contienen números dentro de esos datos de caracteres.

Podemos usar la siguiente consulta para devolver solo aquellas filas que no contener números:

SELECT ProductName 
FROM Products
WHERE ProductName NOT LIKE '%[0-9]%';

Resultado:

+--------------------------+
| ProductName              |
|--------------------------|
| Left handed screwdriver  |
| Long Weight (blue)       |
| Long Weight (green)      |
| Straw Dog Box            |
| Right handed screwdriver |
+--------------------------+

Como era de esperar, solo se devuelven las filas que no contienen números.

Podemos darle la vuelta fácilmente y cambiar NOT LIKE a LIKE para devolver solo aquellas filas que hacen contienen números.