Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

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


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

Dados de amostra


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

Exemplo de consulta


Podemos usar a seguinte consulta para retornar apenas as linhas que contêm 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

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 Oracle, o REGEXP_LIKE condição está em conformidade com o padrão de expressão regular POSIX. Portanto, podemos obter o mesmo resultado com o seguinte padrão:
SELECT ProductName 
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]');

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