sql >> Base de Datos >  >> RDS >> Oracle

Detectar si un valor contiene al menos un dígito numérico en Oracle

El siguiente ejemplo devuelve todas las filas que contienen al menos un dígito numérico en Oracle Database.

Datos de muestra

Supongamos que tenemos una tabla llamada Products con los siguientes datos en su ProductName columna:

SELECT ProductName 
FROM Products;

Resultado:

Left Handed Screwdriver
Right Handed Screwdriver
Bottomless Coffee Cup (4 pack)
Urban Dictionary Version 2.3
Beer Water
10 Songs

Consulta de ejemplo

Podemos usar la siguiente consulta para devolver solo aquellas filas que contienen números:

SELECT ProductName 
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');

Resultado:

Bottomless Coffee Cup (4 pack)
Urban Dictionary Version 2.3
10 Songs

Solo se devuelven las filas que contienen números. Por "números", me refiero a dígitos numéricos. Los números también se pueden representar con palabras o símbolos, pero este ejemplo solo detecta dígitos numéricos.

En Oracle, REGEXP_LIKE condición cumple con el estándar de expresiones regulares POSIX. Por lo tanto, podemos obtener el mismo resultado con el siguiente patrón:

SELECT ProductName 
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]');

Resultado:

Bottomless Coffee Cup (4 pack)
Urban Dictionary Version 2.3
10 Songs