es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema de píxeles de caracteres en la concatenación. Las columnas deben ser fijas según el ancho para todas las columnas concatenadas.

Estos valores se almacenan como parte de una columna. En realidad, son 3 columnas concatenadas a través de SQL Oracle. ¿Cómo puedo hacer que estos valores se vean alineados como 3 columnas diferentes?

Actualmente, estos números tendrán 3 caracteres para la primera columna, 10 para la segunda y 7 para la tercera columna. Por alguna razón, tuve que llevarlos a una sola columna para usarlos en mi plantilla de RTF. Necesito una solución en SQL Oracle para establecer el ancho en las columnas concatenadas. Estoy usando “cast” aquí, pero este es el resultado que obtengo.

Este es para la primera línea en esta salida. He escrito de la misma manera para otras líneas también.

Así es como está quedando.

Salida necesaria:

Creo que esto se debe a que diferentes caracteres tienen diferentes anchos. Por ejemplo, la “N” tiene un ancho diferente en comparación con el “1”.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para que los valores se vean alineados en 3 columnas diferentes, puedes especificar el ancho para cada columna en la declaración CONCAT.

    Por ejemplo:

    CONCAT(CAST(TO_CHAR(G_WEIGHTAGE)||'%          ' as char(10)), 
    CAST(TO_CHAR(G_ACHIEVE , '990.00')||'%          ' as char(10)), 
    CAST( TO_CHAR(ROUND((G_ACHIEVE_FACTOR*(G_WEIGHTAGE/100)),2)*(TARGET_BONUS/100), '990.00')||'%          ' as char(10))) AS G_WAIT 
    

    En este ejemplo, cada columna tiene un ancho de 10 caracteres al agregar espacios después del símbolo ‘%’. Puedes ajustar el ancho según tus necesidades específicas.

    Esto debería resultar en que la salida se vea así:

     40%          96.79%          9.60%
     10%          99.89%          2.70%
     20%      NA/51.42%          0.00%
     10%          62.90%          0.00%
     10%         112.77%          4.80%
    

Comments are closed.