MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Détecter si une valeur contient au moins un chiffre numérique en SQL

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.

Techniquement, les nombres peuvent être représentés par des mots et d'autres symboles, mais ici "nombre" signifie "chiffre numérique".

Vous trouverez ci-dessous des exemples de recherche de lignes contenant au moins un nombre dans divers SGBD basés sur SQL.

SQL Server

Dans SQL Server, nous pouvons utiliser le LIKE opérateur :

SELECT ProductName 
FROM Products
WHERE ProductName LIKE '%[0-9]%';

Cet exemple renvoie le ProductName colonne de la colonne Products table où il y a au moins un chiffre dans le ProductName colonne.

Oracle

Dans Oracle, nous pouvons utiliser le REGEXP_LIKE condition avec un modèle d'expression régulière :

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

REGEXP_LIKE d'Oracle 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:]]');

MySQL

Dans MySQL, nous pouvons utiliser le REGEXP fonction :

SELECT ProductName 
FROM Products
WHERE ProductName REGEXP '[0-9]+';

Nous pouvons également utiliser POSIX dans MySQL :

SELECT ProductName 
FROM Products
WHERE ProductName REGEXP '[[:digit:]]';

MariaDB

MariaDB a également un REGEXP fonction, nous pouvons donc utiliser le même code qu'avec MySQL :

SELECT ProductName 
FROM Products
WHERE ProductName REGEXP '[0-9]+';

Nous pouvons également utiliser POSIX dans MariaDB :

SELECT ProductName 
FROM Products
WHERE ProductName REGEXP '[[:digit:]]';

PostgreSQL

Voici l'équivalent de PostgreSQL :

SELECT ProductName 
FROM Products
WHERE ProductName ~ '[0-9]+';

Et l'équivalent POSIX :

SELECT ProductName 
FROM Products
WHERE ProductName ~ '[[:digit:]]';

SQLite

Dans SQLite, nous pouvons utiliser le code suivant :

SELECT ProductName 
FROM Products
WHERE ProductName REGEXP '[0-9]+';

Le REGEXP L'opérateur est une syntaxe spéciale pour le REGEXP() fonction utilisateur dans SQLite.

Par conséquent, nous pouvons utiliser le code suivant pour obtenir le même résultat :

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