El siguiente ejemplo devuelve todas las filas que contienen al menos un dígito numérico en PostgreSQL.
Ejemplo
Supongamos que tenemos una tabla llamada Products
con los siguientes datos en su ProductName
columna:
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 columna contiene datos de caracteres, pero algunas filas contienen números dentro de esos datos de caracteres (aunque no se almacenan como un tipo numérico).
Podemos usar la siguiente consulta para devolver solo aquellas filas que contienen 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)
Como era de esperar, solo se devuelven las filas que contienen números.
En PostgreSQL, ~
es un operador que distingue entre mayúsculas y minúsculas para hacer coincidir la expresión regular dada. Para coincidencias que no distinguen entre mayúsculas y minúsculas, use ~*
.
Puedes usar !~
para devolver todas las filas que no coinciden con la expresión regular (y !~*
para coincidencias que no distinguen entre mayúsculas y minúsculas).