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

Como detectar se um valor contém pelo menos um número no SQL Server


Às vezes, você pode precisar pesquisar em uma tabela de banco de dados apenas as linhas que contêm pelo menos um número em uma determinada coluna.

Estritamente falando, os números podem ser representados por palavras e outros símbolos, mas para os propósitos deste artigo, “número” significa “dígito numérico”.

Abaixo está um exemplo de como usar o T-SQL para localizar linhas que contenham pelo menos um número no SQL Server.

Exemplo


Suponha que tenhamos uma tabela chamada Products com os seguintes dados em seu ProductName coluna:
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 obviamente contém dados de caracteres, mas algumas linhas contêm números dentro desses dados de caracteres (mesmo que não sejam armazenados como um tipo numérico).

Podemos usar a seguinte consulta para retornar apenas as linhas que contêm números representados por dígitos numéricos:
SELECT ProductName 
FROM Products
WHERE ProductName LIKE '%[0-9]%';

Resultado:
+-------------------------------------+
| ProductName                         |
|-------------------------------------|
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Conforme esperado, somente as linhas que contêm números são retornadas.

Esta técnica não se limita apenas a números. Você pode modificar essa consulta para incluir outros caracteres, se necessário. Tudo o que estamos fazendo é especificar nosso próprio padrão para o LIKE operador.