sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo agregar un cero inicial en un número en la consulta Oracle SQL?

Puedes hacerlo de dos maneras.

Método 1

Uso de LPAD .

Por ejemplo,

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>

La cláusula WITH es solo para crear datos de muestra para la demostración, en su consulta real solo haga:

lpad(removal_count, 5, '0')

Recuerda, un número no puede tener ceros a la izquierda . El resultado de la consulta anterior es una cadena y no un número .

Método 2

Usando TO_CHAR y 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>

Actualizar :Para evitar el espacio inicial adicional que se usa para el signo menos, use FM en el TO_CHAR formato:

Sin FM:

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

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

Con FM:

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

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