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.