¡Hola, chicos!
¡Buen día!
En esta publicación demostraré cómo convertir un número normal (base 10) a un número romano (X, XVII, etc.) usando una función Transact-SQL en SQL Server que encontré en el blog. Advaldo Paiva. Al ser una función, podemos aplicarla para una conversión simple o para actualizar datos en una tabla, por ejemplo.
Código de función:
CREATE FUNCTION [dbo].[fncConverte_Para_Romanos] (
@Numero BIGINT
)
RETURNS VARCHAR(MAX)
BEGIN
DECLARE @s varchar(MAX), @r varchar(MAX), @i bigint, @p bigint, @d bigint
SET @s = ''
SET @r = 'IVXLCDM' -- Simbolo Romanos
IF @numero=0
SET @s = '0'
ELSE BEGIN
SELECT @p = 1, @i = ABS(@numero)
WHILE(@p<=5)
BEGIN
SET @d = @i % 10
SET @i = @i / 10
SELECT @s = CASE WHEN @d IN (0,1,2,3) THEN REPLICATE(SubString(@r,@p,1),@d) + @s
WHEN @d IN (4) THEN SUBSTRING(@r,@p,2) + @s
WHEN @d IN (5,6,7,8) THEN SUBSTRING(@r,@p+1,1) + REPLICATE(SubString(@r,@p,1),@d-5) + @s
WHEN @d IN (9) THEN SUBSTRING(@r,@p,1) + SubString(@r,@p+2,1) + @s
END
SET @p = @p + 2
END
SET @s = Replicate('M',@i) + @s
IF @numero < 0
SET @s = '-' + @s
END
RETURN @s
END
Ejemplos de uso:

Eso es todo amigos
¡Gracias por visitarnos y hasta la próxima!
Cómo convertir números a números romanos en SQL Server Romain Numeral
Cómo convertir números a números romanos en SQL Server Romain Numeral
Comentários (0)
Carregando comentários…