sql >> Base de Datos >  >> RDS >> SQLite

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

El siguiente ejemplo de SQLite devuelve todas las filas que contienen al menos un dígito numérico.

Datos de muestra

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

SELECT ProductName 
FROM Products;

Resultado:

ProductName                         
------------------------------------
Widget Holder (holds 5 gram widgets)
Widget Opener                       
Bob's "Best" Widget                 
Blue Widget                         
Urban Dictionary Version 1.2        
Beer Water (375ml)                  

Consulta de ejemplo

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 REGEXP '[0-9]+';

Resultado:

ProductName                         
------------------------------------
Widget Holder (holds 5 gram widgets)
Urban Dictionary Version 1.2        
Beer Water (375ml)                  

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 SQLite, el REGEXP operador es una sintaxis especial para REGEXP() función de usuario.

Por lo tanto, podemos usar el siguiente código para obtener el mismo resultado:

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

Resultado:

ProductName                         
------------------------------------
Widget Holder (holds 5 gram widgets)
Urban Dictionary Version 1.2        
Beer Water (375ml)