Saltar al contenido

Formateo de números rellenando con ceros a la izquierda en SQL Server

Hacemos una verificación completa cada noticias en nuestra web con la meta de mostrarte en todo momento la información veraz y certera.

Solución:

Cambie el número 6 a cualquiera que sea su longitud total:

SELECT REPLICATE('0',6-LEN(EmployeeId)) + EmployeeId

Si la columna es INT, puede usar RTRIM para convertirla implícitamente en VARCHAR

SELECT REPLICATE('0',6-LEN(RTRIM(EmployeeId))) + RTRIM(EmployeeId)

Y el código para eliminar estos 0 y recuperar el número ‘real’:

SELECT RIGHT(EmployeeId,(LEN(EmployeeId) - PATINDEX('%[^0]%',EmployeeId)) + 1)

Simplemente use la función FORMATO (funciona en SQL Server 2012 o posterior):

SELECT FORMAT(EmployeeID, '000000')
FROM dbo.RequestItems
WHERE ID=0 

Referencia: http://msdn.microsoft.com/en-us/library/hh213505.aspx

Puede cambiar su procedimiento de esta manera

SELECT Right('000000' + CONVERT(NVARCHAR, EmployeeID), 6) AS EmpIDText, 
       EmployeeID
FROM dbo.RequestItems 
WHERE ID=0 

Sin embargo, esto supone que su EmployeeID es un valor numérico y este código cambia el resultado a un stringsugiero agregar nuevamente el valor numérico original

EDITAR Por supuesto que no he leído detenidamente la pregunta anterior. Dice que el campo es un char(6) entonces EmployeeID no es un valor numérico. Si bien esta respuesta todavía tiene un valor per se, no es la respuesta correcta a la pregunta anterior.

Sección de Reseñas y Valoraciones

Si crees que ha sido de provecho nuestro post, agradeceríamos que lo compartas con más seniors así contrubuyes a extender este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *