SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Detectar se um valor contém pelo menos um dígito numérico no SQLite


O exemplo SQLite a seguir retorna todas as linhas que contêm pelo menos um dígito numérico.

Dados de amostra


Suponha que tenhamos uma tabela chamada Products com os seguintes dados em seu ProductName coluna:
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)                  

Exemplo de consulta


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

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

Somente as linhas que contêm números são retornadas. Por “números”, quero dizer dígitos numéricos. Os números também podem ser representados por palavras ou símbolos, mas este exemplo detecta apenas dígitos numéricos.

No SQLite, o REGEXP operador é uma sintaxe especial para o REGEXP() função do usuário.

Portanto, podemos usar o seguinte código para obter o mesmo 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)