SQL Server Cómo dejar un número con ceros

La función T-SQL replicada en el servidor SQL de Microsoft simplifica la adición de ceros iniciales a un valor numérico.

Vamos a crear una tabla 'emp' con empid y salario columnas

crear tabla emp (empid int, salario int);


Insertar algunos datos de muestra en la tabla 'emp'.

Insertar en los valores de emp (1,300); Insertar en los valores de emp (2,30); insertar en los valores de emp (3,500000); Insertar en los valores de emp (4,1000);
seleccione * desde emp; Salario empático ----------- ----------- 1 300 2 30 3 500000 4 1000 (4 fila (s) afectadas)


Ahora, dejemos la almohadilla salario columna con 0s.

Si no sabemos cuántos O tenemos que rellenar hacia la izquierda para que todos los valores tengan la misma longitud, podemos encontrar la longitud máxima de salario columna usando la siguiente consulta:

SELECCIONE Máx (mylength) FROM (SELECCIONE Len (salario) AS mylength FROM emp) x; ----------- 6

La consulta devuelve un valor de 6, que es la longitud máxima en salario Columna por empid 3 con salario de 500000.

Ahora para agregar los ceros a la izquierda. salario En la columna, podemos usar la función de cadena incorporada de réplica en T-SQL.

Sintaxis:

replicar (expresión de cadena, expresión entera);


SQL Server 2008: La siguiente consulta dejará la columna de salario del pad con 0s.

seleccione empid, replicar ('0', 6 - len (salario)) + emitir (salario como varchar) como salario de emp; Salario salarial ----------- ----------- 1 000300 2 000030 3 500000 4 001000 (4 fila (s) afectadas)


En la consulta de la versión de SQL Server 2008, el primer parámetro es nuestra cadena de relleno '0'. En el segundo parámetro estamos restando la longitud de salario Columna del 6 que es nuestra longitud máxima. Por lo tanto, nuestra expresión sabe cuántos O se necesitan para dejar el teclado y concatenar el salario columna.

Con SQL Server 2012, puede lograr el mismo resultado con un simple código de una línea utilizando la función FORMATO.

SQL Server 2012: Columna de salario del pad izquierdo con 0s

SELECCIONAR FORMATO (salario, '000000') DESDE emp; Salario salarial ----------- ----------- 1 000300 2 000030 3 500000 4 001000 (4 fila (s) afectadas)