Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

225
Vistas
¿Cómo agregar un cero inicial cuando se desconoce la longitud de la columna?

¿Cómo puedo agregar un cero inicial a una columna varchar en la tabla y no sé la longitud de la columna? Si la columna no es nula, entonces debo agregar un cero inicial.

Ejemplos:

345 - la salida debe ser 0345
4567 - la salida debe ser 04567

Lo intenté:

 SELECT lpad(column1,WHAT TO SPECIFY HERE?, '0') from table_name;

Ejecutaré una consulta de actualización después de obtener esto.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puede que estés pensando demasiado en esto. Usar concatenación simple:

 SELECT '0' || column1 AS padded_col1 FROM table_name;

Si la columna es NULL, no pasa nada: concatenar cualquier cosa a NULL devuelve NULL.

En particular, no use concat() . Obtendría '0' para columnas NULL, que no desea.

Si también tiene cadenas vacías ( '' ), es posible que deba hacer más, según lo que desee.

Y dado que mencionó su plan para actualizar la tabla: considere no hacer esto, está agregando ruido, que podría agregarse para mostrar con la expresión simple. Una VIEW podría ser útil para esto.

Si todos sus valores varchar son de hecho números válidos, use un tipo de datos numérico apropiado en su lugar y formato para mostrar con la misma expresión que arriba. La concatenación produce automáticamente un resultado de texto .

Si las circunstancias obligan a su mano y necesita actualizar de todos modos, considere esto:

 UPDATE table_name SET column1 = '0' || column1 WHERE column1 IS DISTINCT FROM '0' || column1;

La cláusula WHERE agregada para evitar actualizaciones vacías. Comparar:

  • ¿Cómo puedo (o puedo) SELECCIONAR DISTINTO en varias columnas?
over 4 years ago · Santiago Trujillo Denunciar

0

intenta concat en su lugar?..

 SELECT concat(0::text,column1) from table_name;
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda