Yo creo que la mejor opción es construir una función en Sql que pueda usar en cualquier momento.
Esta función Padleft lo que haría sería, rellenar con un carácter por la izquierda hasta completar el número de caracteres que le indiques por parámetro.
Aquí os dejo el código que he creado para construir esta función.
En este código, por optimización, distingo si la cadena original es numérica o alfanumérica.
ALTER FUNCTION PADLEFT
(
@value as nvarchar(100),
@charIzq as varchar(1),
@intLenth as int
)
RETURNS nvarchar(100)
AS
BEGIN
DECLARE @vchPadded as nvarchar(100)
Set @vchPadded=@value
If LEN(@value)< @intLenth
Begin
If ISNUMERIC(@value)=1
Begin
SELECT @vchPadded =
REPLACE(STR(@value, @intLenth), SPACE(1), @charIzq)
End
Else
Begin
Set @vchPadded=@value
While (LEN(@vchPadded)<@intLenth)
Begin
Set @vchPadded=@charIzq + @vchPadded
End
End
End
RETURN @vchPadded
END
Para usarla tendrías que escribir una consulta de este tipo:
Select dbo.PADLEFT('63','0',5)
Su resultado sería: 00063
No hay comentarios:
Publicar un comentario