Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como adicionar zero à esquerda em um número na consulta Oracle SQL?


Você poderia fazê-lo de duas maneiras.

Método 1

Usando LPAD .

Por exemplo,
SQL> WITH DATA(num) AS(
  2  SELECT 540 FROM dual UNION ALL
  3  SELECT 60 FROM dual UNION ALL
  4  SELECT 2 FROM dual
  5  )
  6  SELECT num, lpad(num, 5, '0') num_pad FROM DATA;

       NUM NUM_P
---------- -----
       540 00540
        60 00060
         2 00002

SQL>

A cláusula WITH é apenas para construir dados de amostra para demonstração, na sua consulta real, basta fazer:
lpad(removal_count, 5, '0')

Lembre-se, um número não pode ter zeros à esquerda . A saída da consulta acima é uma string e não um número .

Método 2

Usando TO_CHAR e modelo de formato:
SQL> WITH DATA(num) AS(
  2  SELECT 540 FROM dual UNION ALL
  3  SELECT 60 FROM dual UNION ALL
  4  SELECT 2 FROM dual
  5  )
  6  SELECT num, to_char(num, '00000') num_pad FROM DATA;

       NUM NUM_PA
---------- ------
       540  00540
        60  00060
         2  00002

SQL>

Atualizar :Para evitar o espaço extra à esquerda que é usado para o sinal de menos, use FM no TO_CHAR formato:

Sem FM:
SELECT TO_CHAR(1, '00000') num_pad,
  LENGTH(TO_CHAR(1, '00000')) tot_len
FROM dual;

NUM_PAD    TOT_LEN
------- ----------
 00001           6 

Com FM:
SELECT TO_CHAR(1, 'FM00000') num_pad,
  LENGTH(TO_CHAR(1, 'FM00000')) tot_len
FROM dual;

NUM_PAD    TOT_LEN
------- ----------
00001            5