L'exemple suivant renvoie toutes les lignes qui ne contiennent aucun nombre dans PostgreSQL.
Les nombres peuvent être représentés par des mots et d'autres symboles, mais pour cet article, "nombre" signifie simplement "chiffre numérique". Nous trouvons donc des valeurs qui ne contiennent aucun chiffre numérique.
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 qui ne contiennent aucun chiffre :
SELECT ProductName
FROM Products
WHERE ProductName !~ '[0-9]+';
Résultat :
productname -------------------------- Left handed screwdriver Right handed screwdriver Long Weight (blue) Long Weight (green) Straw Dog Box (5 rows)
Comme prévu, seules les lignes qui ne contiennent aucun chiffre numérique sont renvoyées.
Dans PostgreSQL, !~
est un opérateur sensible à la casse utilisé pour renvoyer des valeurs qui ne correspondent pas à l'expression régulière donnée. Pour les correspondances insensibles à la casse, utilisez !~*
.
Vous pouvez utiliser ~
pour renvoyer toutes les lignes qui font correspondre à l'expression régulière (et ~*
pour les correspondances insensibles à la casse).