No SQLite, podemos usar o
PRINTF()
função ou FORMAT()
função para formatar números com zeros à esquerda. Exemplo
SELECT PRINTF('%03d', 7);
Resultado:
007
O sinal de porcentagem (
%
) indica que uma substituição segue. O
0
indica que o SQLite deve preceder quantos 0
caracteres para substituições numéricas conforme necessário para expandir o valor para a largura especificada. O
d
indica que o argumento é um inteiro assinado que é exibido em decimal (em oposição a hexadecimal, octal, etc). Então, se quisermos mais zeros à esquerda, podemos aumentar o
3
para um número maior:SELECT PRINTF('%09d', 7);
Resultado:
000000007
Para números inteiros, podemos incluir uma vírgula para o separador de grupo:
SELECT PRINTF('%0,9d', 72345);
Resultado:
000,072,345
O FORMAT()
Função
SQLite 3.38.0 (lançado em 22 de fevereiro de 2022) renomeou o
PRINTF()
função para FORMAT()
. O PRINTF()
original name é mantido como um alias para compatibilidade com versões anteriores. Portanto, o primeiro exemplo acima pode ser alterado para isso:
SELECT FORMAT('%2d%%', 17);
Resultado:
17%