O exemplo a seguir retorna todas as linhas que contêm pelo menos um dígito numérico no PostgreSQL.
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 contêm números representados por dígitos numéricos:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+';
Resultado:
productname --------------------------------- Bottomless Coffee Mugs (4 Pack) Smash 2000 Sledge Hammer Chainsaw (3 spare fingers)
Conforme esperado, somente as linhas que contêm números são retornadas.
No PostgreSQL,
~
é um operador que diferencia maiúsculas de minúsculas para corresponder à 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 não correspondem à expressão regular (e !~*
para correspondências que não diferenciam maiúsculas de minúsculas).