Někdy může být potřeba hledat v databázové tabulce pouze ty řádky, které obsahují alespoň jedno číslo v daném sloupci.
Technicky mohou být čísla reprezentována slovy a jinými symboly, ale zde „číslo“ znamená „číselnou číslici“.
Níže jsou příklady, jak najít řádky, které obsahují alespoň jedno číslo v různých DBMS založených na SQL.
SQL Server
V SQL Serveru můžeme použít LIKE operátor:
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Tento příklad vrátí ProductName ze sloupce Products tabulka, kde je v ProductName alespoň jedna číslice sloupec.
Oracle
V Oracle můžeme použít REGEXP_LIKE podmínka se vzorem regulárního výrazu:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');
REGEXP_LIKE společnosti Oracle podmínka odpovídá standardu regulárních výrazů POSIX. Proto můžeme získat stejný výsledek s následujícím vzorem:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]'); MySQL
V MySQL můžeme použít REGEXP funkce:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; Můžeme také použít POSIX v MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; MariaDB
MariaDB má také REGEXP funkce, takže můžeme použít stejný kód jako u MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; Můžeme také použít POSIX v MariaDB:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; PostgreSQL
Zde je ekvivalent PostgreSQL:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+'; A ekvivalent POSIX:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[[:digit:]]'; SQLite
V SQLite můžeme použít následující kód:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
REGEXP Operátor je speciální syntaxe pro REGEXP() uživatelská funkce v SQLite.
Proto můžeme použít následující kód k získání stejného výsledku:
SELECT ProductName
FROM Products
WHERE REGEXP('[0-9]+', ProductName);