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.

Añada ceros delante de los números de un solo dígito en la columna.

Tengo un requisito para rellenar con un cero inicial cualquier número de un solo dígito en un campo de tipo cadena. Solo necesito rellenar los caracteres numéricos individuales con un cero inicial, no los caracteres alfabéticos (A-Z) de tipo cadena. A continuación se muestra un ejemplo de los datos actuales, junto con la salida esperada para estos ejemplos.

Salida actual        Salida esperada:
9                      09    
19                     19   
15                     15
F                      F
UR                     UR           
B                      B  
0                      00    
4                      04
N                      N
00                     00
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para añadir ceros al principio de los números de un solo dígito en un campo de cadena en SQL Server 2014, puedes utilizar la siguiente consulta:

    SELECT 
    CASE
        WHEN col LIKE '[0-9]' THEN 
            CASE
                WHEN LEN(col) = 1 THEN '0'+col
                ELSE col
            END
        ELSE col
    END AS col_padded
    FROM table_name;
    

    Explicación:
    – La instrucción CASE verifica si la columna contiene un número de un solo dígito o no utilizando el patrón [0-9].
    – Si la columna contiene un número de un solo dígito, verifica la longitud de la columna.
    – Si la longitud de la columna es 1, añade un cero al principio de la columna utilizando el operador de concatenación de cadenas '+'.
    – De lo contrario, devuelve el valor original de la columna.
    – Si la columna no contiene un número de un solo dígito, devuelve el valor original de la columna.

    Esta consulta devolverá una nueva columna llamada col_padded que contiene el resultado esperado.

Comments are closed.