Abaixo estão exemplos de como adicionar um zero à esquerda a um número em SQL, usando vários DBMSs.
Oráculo
Oracle tem um
TO_CHAR(number)
função que nos permite adicionar zeros à esquerda a um número. Ele retorna seu resultado como uma string no formato especificado. SELECT TO_CHAR(7, '000')
FROM DUAL;
Resultado:
007
O
0
elemento de formato é o que gera os zeros à esquerda. Se não quiséssemos zeros à esquerda, poderíamos usar 9
. Aqui está uma comparação entre
0
e 9
para demonstrar o que quero dizer:SELECT
TO_CHAR(1234.456, '000G000D00') AS "0",
TO_CHAR(1234.456, '999G999D99') AS "9"
FROM DUAL;
Resultado:
0 9 ______________ ______________ 001,234.46 1,234.46
O
G
é para o separador de grupo e o D
é para o separador decimal. Consulte esta lista de elementos de formato de número para obter uma lista completa. Oracle também tem um
LPAD()
função que nos permite preencher um número com zeros à esquerda (ou qualquer outro caractere). Consulte 2 maneiras de formatar um número com zeros à esquerda no Oracle para obter um exemplo. PostgreSQL
PostgreSQL também tem um
TO_CHAR()
função, e funciona como a função do Oracle de mesmo nome:SELECT TO_CHAR(7, '000');
Resultado:
007
E aqui está uma comparação entre
0
e 9
:SELECT
TO_CHAR(1234.456, '000G000D00') AS "0",
TO_CHAR(1234.456, '999G999D99') AS "9";
Resultado:
0 | 9 -------------+------------- 001,234.46 | 1,234.46
Consulte Padrões e modificadores de modelo para formatação numérica no Postgres para obter uma lista completa de padrões de modelo que podem ser usados com esta função no PostgreSQL.
Assim como o Oracle, o PostgreSQL também possui um
LPAD()
função que nos permite preencher números com zeros à esquerda. Veja 2 maneiras de adicionar zeros à esquerda no PostgreSQL para obter um exemplo. MySQL
MySQL tem um
LPAD()
função que nos permite preencher a parte esquerda de uma string ou número com nosso caractere ou série de caracteres escolhidos. Portanto, podemos usá-lo para preencher nosso número com zeros:SELECT LPAD(7, 3, 0);
Resultado:
007
Felizmente, podemos passar o número como um tipo numérico, então não há necessidade de convertê-lo em uma string primeiro.
Consulte Como adicionar zeros à esquerda a um número no MySQL para obter mais informações.
MariaDB
Assim como o MySQL, o MariaDB também possui um
LPAD()
função que nos permite preencher a parte esquerda de uma string ou número com nosso caractere ou série de caracteres escolhidos:SELECT LPAD(7, 3, 0);
Resultado:
007
E como no MySQL, podemos passar o número como um tipo numérico, então não há necessidade de convertê-lo em uma string primeiro.
Consulte Como preencher um número com zeros à esquerda no MariaDB para saber mais.
SQL Server
SQL Server tem um
FORMAT()
função que nos permite formatar números usando uma string de formato:SELECT FORMAT(7, '000');
Resultado:
007
Aqui está com um separador de grupo e separador decimal:
SELECT FORMAT(1234, '0,000.00');
Resultado:
1,234.00
Consulte Adicionar zeros à esquerda e à direita no SQL Server para obter mais informações.
SQLite
SQLite tem um
PRINTF()
função que pode ser usada para adicionar zeros à esquerda a um número:SELECT PRINTF('%03d', 7);
Resultado:
007
Consulte Como formatar números com zeros à esquerda no SQLite para obter uma explicação.
Atualizar :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 exemplo acima pode ser alterado para isso:
SELECT FORMAT('%03d', 7);
Resultado:
007