L'exemple suivant renvoie toutes les lignes qui contiennent au moins un chiffre numérique dans PostgreSQL.
Exemple
Supposons que nous ayons une table appelée Products
avec les données suivantes dans son ProductName
colonne :
SELECT ProductName
FROM Products;
Résultat :
productname --------------------------------- Left handed screwdriver Right handed screwdriver Long Weight (blue) Long Weight (green) Straw Dog Box Bottomless Coffee Mugs (4 Pack) Smash 2000 Sledge Hammer Chainsaw (3 spare fingers)
Cette colonne contient des données de caractères, mais certaines lignes contiennent des nombres dans ces données de caractères (même s'ils ne sont pas stockés en tant que type numérique).
Nous pouvons utiliser la requête suivante pour renvoyer uniquement les lignes contenant des nombres représentés par des chiffres :
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+';
Résultat :
productname --------------------------------- Bottomless Coffee Mugs (4 Pack) Smash 2000 Sledge Hammer Chainsaw (3 spare fingers)
Comme prévu, seules les lignes contenant des nombres sont renvoyées.
Dans PostgreSQL, ~
est un opérateur sensible à la casse pour faire correspondre l'expression régulière donnée. Pour les correspondances insensibles à la casse, utilisez ~*
.
Vous pouvez utiliser !~
pour renvoyer toutes les lignes qui ne correspondent pas à l'expression régulière (et !~*
pour les correspondances insensibles à la casse).