Como filtrar minha tabela por dados que iniciem por números?

Como filtrar minha tabela por dados que iniciem por números?
Photo by Mika Baumeister / Unsplash

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:

SUBSTRING (Transact-SQL) - SQL Server
Referência de Transact-SQL para a função SUBSTRING. Essa função retorna uma parte de uma expressão de caractere, binário, texto ou imagem especificada.
ISNUMERIC (Transact-SQL) - SQL Server
ISNUMERIC determina se uma expressão é um tipo numérico válido.
TRIM (Transact-SQL) - SQL Server
Remove o caractere de espaço ou outros caracteres especificados do início e do final de uma cadeia de caracteres.