A volte potrebbe essere necessario cercare in una tabella di database solo quelle righe che contengono almeno un numero in una determinata colonna.
Tecnicamente, i numeri possono essere rappresentati da parole e altri simboli, ma qui "numero" significa "cifra numerica".
Di seguito sono riportati esempi di come trovare righe che contengono almeno un numero in vari DBMS basati su SQL.
SQL Server
In SQL Server possiamo usare LIKE operatore:
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Quell'esempio restituisce il ProductName colonna dai Products tabella in cui è presente almeno una cifra nel ProductName colonna.
Oracolo
In Oracle, possiamo usare il REGEXP_LIKE condizione con un modello di espressione regolare:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');
REGEXP_LIKE di Oracle la condizione è conforme allo standard delle espressioni regolari POSIX. Pertanto, possiamo ottenere lo stesso risultato con il seguente schema:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]'); MySQL
In MySQL, possiamo usare REGEXP funzione:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; Possiamo anche usare POSIX in MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; MariaDB
MariaDB ha anche un REGEXP funzione, quindi possiamo usare lo stesso codice di MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; Possiamo anche usare POSIX in MariaDB:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; PostgreSQL
Ecco l'equivalente di PostgreSQL:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+'; E l'equivalente POSIX:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[[:digit:]]'; SQLite
In SQLite, possiamo usare il seguente codice:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Il REGEXP è una sintassi speciale per REGEXP() funzione utente in SQLite.
Pertanto, possiamo utilizzare il seguente codice per ottenere lo stesso risultato:
SELECT ProductName
FROM Products
WHERE REGEXP('[0-9]+', ProductName);