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

2 façons de renvoyer des lignes qui ne contiennent pas de valeurs numériques dans Oracle

Les exemples suivants renvoient uniquement les lignes qui ne contiennent aucun chiffre dans une colonne donnée d'Oracle Database.

Exemple de données

Supposons que nous ayons un tableau avec les données suivantes :

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

La table ProductName utilise un varchar2 type de données, et donc il contient des données de caractères. Mais il peut aussi contenir des chiffres numériques.

Exemple 1 – Regex

Voici une requête que nous pouvons utiliser pour renvoyer toutes les lignes qui ne contiennent pas de chiffres :

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

Résultat :

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water

Exemple 2 – POSIX

Dans Oracle Database, 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 la requête suivante :

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

Résultat :

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water