Nogle gange skal du muligvis kun søge i en databasetabel efter de rækker, der indeholder mindst ét tal i en given kolonne.
Teknisk set kan tal repræsenteres af ord og andre symboler, men her betyder "tal" "numerisk ciffer".
Nedenfor er eksempler på, hvordan man finder rækker, der indeholder mindst ét tal i forskellige SQL-baserede DBMS'er.
SQL-server
I SQL Server kan vi bruge LIKE operatør:
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Dette eksempel returnerer ProductName kolonne fra Products tabel, hvor der er mindst ét ciffer i ProductName kolonne.
Oracle
I Oracle kan vi bruge REGEXP_LIKE betingelse med et regulært udtryksmønster:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');
Oracles REGEXP_LIKE betingelse overholder POSIX regulære udtryksstandard. Derfor kan vi få det samme resultat med følgende mønster:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]'); MySQL
I MySQL kan vi bruge REGEXP funktion:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; Vi kan også bruge POSIX i MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; MariaDB
MariaDB har også en REGEXP funktion, så vi kan bruge samme kode som med MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; Vi kan også bruge POSIX i MariaDB:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; PostgreSQL
Her er PostgreSQLs ækvivalent:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+'; Og POSIX-ækvivalenten:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[[:digit:]]'; SQLite
I SQLite kan vi bruge følgende kode:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
REGEXP operator er en speciel syntaks for REGEXP() brugerfunktion i SQLite.
Derfor kan vi bruge følgende kode til at få det samme resultat:
SELECT ProductName
FROM Products
WHERE REGEXP('[0-9]+', ProductName);