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

Comment détecter si une valeur contient au moins un nombre dans SQL Server

Parfois, vous devrez peut-être rechercher dans une table de base de données uniquement les lignes contenant au moins un nombre dans une colonne donnée.

À proprement parler, les nombres peuvent être représentés par des mots et d'autres symboles, mais dans le cadre de cet article, "nombre" signifie "chiffre numérique".

Vous trouverez ci-dessous un exemple d'utilisation de T-SQL pour rechercher des lignes contenant au moins un nombre dans SQL Server.

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             |
| Long Weight (blue)                  |
| Long Weight (green)                 |
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Straw Dog Box                       |
| Bottomless Coffee Mugs (4 Pack)     |
| Right handed screwdriver            |
+-------------------------------------+

Cette colonne contient évidemment 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 LIKE '%[0-9]%';

Résultat :

+-------------------------------------+
| ProductName                         |
|-------------------------------------|
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Comme prévu, seules les lignes contenant des nombres sont renvoyées.

Cette technique ne se limite pas aux chiffres. Vous pouvez modifier cette requête pour inclure d'autres caractères si nécessaire. Tout ce que nous faisons est de spécifier notre propre modèle pour le LIKE opérateur.