Понякога може да се наложи да търсите в таблица на база данни само за онези редове, които съдържат поне едно число в дадена колона.
Технически числата могат да бъдат представени с думи и други символи, но тук „число“ означава „цифрова цифра“.
По-долу са дадени примери за това как да намерите редове, които съдържат поне едно число в различни SQL базирани СУБД.
SQL сървър
В SQL Server можем да използваме LIKE оператор:
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Този пример връща ProductName колона от Products таблица, в която има поне една цифра в ProductName колона.
Оракул
В Oracle можем да използваме REGEXP_LIKE условие с модел на регулярен израз:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');
REGEXP_LIKE на Oracle условието отговаря на стандарта за регулярни изрази POSIX. Следователно можем да получим същия резултат със следния модел:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]'); MySQL
В MySQL можем да използваме REGEXP функция:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; Можем също да използваме POSIX в MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; MariaDB
MariaDB също има REGEXP функция, така че можем да използваме същия код като при MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; Можем също да използваме POSIX в MariaDB:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; PostgreSQL
Ето еквивалента на PostgreSQL:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+'; И POSIX еквивалентът:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[[:digit:]]'; SQLite
В SQLite можем да използваме следния код:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
REGEXP операторът е специален синтаксис за REGEXP() потребителска функция в SQLite.
Следователно можем да използваме следния код, за да получим същия резултат:
SELECT ProductName
FROM Products
WHERE REGEXP('[0-9]+', ProductName);