Visualizações: 3.718 views
Olá pessoal!
Bom dia!
Neste post vou demonstrar como converter um número normal (de base 10) para um algarismo romano (X, XVII, etc) utilizando uma função Transact-SQL no SQL Server que encontrei no blog do Advaldo Paiva. Por ser uma função, podemos aplicá-la para uma conversão simples ou para atualizar os dados de uma tabela, por exemplo.
Código da função:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41  | 
						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  | 
					
É isso aí pessoal,
Obrigado pela visita e até a próxima!
Como converter números para algarismos romanos no SQL Server Romain Numeral
Como converter números para algarismos romanos no SQL Server Romain Numeral

