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.