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:
1 2 3 4 5 6 7 8 9 10 11 | 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:
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Eita, protheus! rsrs
Parabéns! Obrigado!
Eu que agradeço pelo comentário Cleiton.
Grande abraço.