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

Como obter valores que não contêm números no SQL Server


Se você tiver uma coluna em uma tabela de banco de dados do SQL Server que contém dados de caracteres, mas algumas linhas também contêm números nesses dados, você pode usar a técnica a seguir para retornar apenas as linhas que não contêm números.

Números podem ser representados por palavras e outros símbolos, mas para o propósito deste artigo, “número” significa “dígito numérico”. Portanto, estamos encontrando valores que não contêm dígitos numéricos.

Exemplo


Suponha que temos uma coluna com os seguintes dados:
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 coluna contém dados de caracteres, mas algumas linhas contêm números dentro desses dados de caracteres.

Podemos usar a seguinte consulta para retornar apenas as linhas que não conter 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 esperado, apenas as linhas que não contêm números são retornadas.

Podemos facilmente inverter e alterar NOT LIKE para LIKE para retornar apenas as linhas que fazem contêm números.