Como filtrar minha tabela por dados que iniciem por números?
Possuo uma tabela com a seguinte configuração:
id | nome |
---|---|
1 | 1.2 Estação Cursos_Link |
2 | Estação Palestras Banco de dados |
3 | 1.3 Estação Cusos_WhatsApp |
Desejo filtrar minha coluna nome que é do tipo string, só com os dados que comecem com números, como proceder?
Uma maneira de resolver o problema é utilizando uma composição de funções, utilizando a função substring
com isnumeric
.
O algoritmo para esta solução pode ser descrito da seguinte forma:
Exiba todas as ocorrências que possui a coluna nome que a primeira letra que seja um valor numérico.
Dessa forma em SQL temos:
A função substring
vai "recortar" a string nome, e vai retornar o caractere de índice zero da coluna nome. Verificar se este caractere é do tipo numérico através da função isnumeric
Explicando o funcionamento da função isnumeric
:
ISNUMERIC retorna 1 quando a expressão de entrada é avaliada como um tipo de dados numérico válido; caso contrário, retorna 0 (zero).
Compondo as funções, temos a seguinte consulta:
SELECT * FROM cursos WHERE ISNUMERIC(SUBSTRING(nome,1,1)) = 1;
Para resultados mais robustos recomendo utilizar uma função trim
para remover qualquer espaço em branco incluído acidentalmente na string nome.
SELECT * FROM cursos WHERE ISNUMERIC(SUBSTRING(TRIM(nome),1,1)) = 1;
Referências: