Às vezes, você pode precisar pesquisar em uma tabela de banco de dados apenas as linhas que contêm pelo menos um número em uma determinada coluna.
Tecnicamente, os números podem ser representados por palavras e outros símbolos, mas aqui “número” significa “dígito numérico”.
Abaixo estão exemplos de como localizar linhas que contêm pelo menos um número em vários DBMSs baseados em SQL.
SQL Server
No SQL Server, podemos usar o
LIKE
operador:SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Esse exemplo retorna o
ProductName
coluna de Products
tabela onde há pelo menos um dígito no ProductName
coluna. Oráculo
No Oracle, podemos usar o
REGEXP_LIKE
condição com um padrão de expressão regular:SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');
REGEXP_LIKE
da Oracle condição está em conformidade com o padrão de expressão regular POSIX. Portanto, podemos obter o mesmo resultado com o seguinte padrão:SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]');
MySQL
No MySQL, podemos usar o
REGEXP
função:SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Também podemos usar POSIX no MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]';
MariaDB
MariaDB também tem um
REGEXP
função, então podemos usar o mesmo código do MySQL:SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Também podemos usar POSIX no MariaDB:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]';
PostgreSQL
Aqui está o equivalente do PostgreSQL:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+';
E o equivalente POSIX:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[[:digit:]]';
SQLite
No SQLite, podemos usar o seguinte código:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
O
REGEXP
operador é uma sintaxe especial para o REGEXP()
função de usuário no SQLite. Portanto, podemos usar o seguinte código para obter o mesmo resultado:
SELECT ProductName
FROM Products
WHERE REGEXP('[0-9]+', ProductName);