PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Encontre valores que não contenham números no PostgreSQL


O exemplo a seguir retorna todas as linhas que não contêm números no PostgreSQL.

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

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
 Right handed screwdriver
 Long Weight (blue)
 Long Weight (green)
 Straw Dog Box
 Bottomless Coffee Mugs (4 Pack)
 Smash 2000 Sledge Hammer
 Chainsaw (3 spare fingers)

Esta coluna 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 não contêm nenhum dígito numérico:
SELECT ProductName 
FROM Products
WHERE ProductName !~ '[0-9]+';

Resultado:
       productname        
--------------------------
 Left handed screwdriver
 Right handed screwdriver
 Long Weight (blue)
 Long Weight (green)
 Straw Dog Box
(5 rows)

Como esperado, apenas as linhas que não contêm dígitos numéricos são retornadas.

No PostgreSQL, !~ é um operador que diferencia maiúsculas de minúsculas usado para retornar valores que não correspondem à expressão regular fornecida. Para correspondências que não diferenciam maiúsculas de minúsculas, use !~* .

Você pode usar ~ para retornar todas as linhas que fazem corresponde à expressão regular (e ~* para correspondências que não diferenciam maiúsculas de minúsculas).