Oracle
 sql >> Base de données >  >> RDS >> Oracle

Détecter si une valeur contient au moins un chiffre numérique dans Oracle

L'exemple suivant renvoie toutes les lignes contenant au moins un chiffre numérique dans Oracle Database.

Exemple de données

Supposons que nous ayons une table appelée Products avec les données suivantes dans son ProductName colonne :

SELECT ProductName 
FROM Products;

Résultat :

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

Exemple de requête

Nous pouvons utiliser la requête suivante pour renvoyer uniquement les lignes contenant des nombres :

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

Résultat :

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

Seules les lignes contenant des nombres sont renvoyées. Par "chiffres", j'entends des chiffres numériques. Les nombres peuvent également être représentés par des mots ou des symboles, mais cet exemple ne détecte que les chiffres numériques.

Dans Oracle, le REGEXP_LIKE condition est conforme à la norme d'expression régulière POSIX. Par conséquent, nous pouvons obtenir le même résultat avec le modèle suivant :

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

Résultat :

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