Como remover os zeros a esquerda de um campo código em um relatório usando SQL Server

Hoje vou mostrar como em uma query, tirar o zero a esquerda de algum campo no resultado (por exemplo, 000150 sair como 150).

Recentemente estava conversando com meu amigo Osvaldir Gomes, e ele havia me perguntado se eu conhecia alguma forma de retirar zeros a esquerda em uma query no cadastro de produtos.

Basicamente, onde teria o código 000450 deveria sair 450, e assim por diante. Eu falei que talvez teria que dar um replace via SQL, mas nesse cenário teria quantidade variada de zeros, podendo ter código por exemplo, 001252.

Então ele pesquisando encontrou, e me mandou o link – https://qastack.com.br/programming/662383/better-techniques-for-trimming-leading-zeros-in-sql-server

Basicamente a solução é utilizar a função PATINDEX, pra encontrar a primeira posição que não for 0, e a partir disso fazer um substring pegando essa posição inicial, e a posição final sendo o tamanho do campo.

Abaixo um exemplo da query SQL:

SELECT
	SUBSTRING(B1_COD, PATINDEX('%[^0]%', B1_COD), LEN(B1_COD)) AS Produto,
	B1_COD AS Codigo_Orig,
	B1_DESC AS Descricao
FROM
	SB1010 SB1
WHERE
	B1_FILIAL = ' '
	AND SB1.D_E_L_E_T_ = ' '
ORDER BY
	Produto

Abaixo um print de exemplo do resultado:

Listagem de produtos

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta