SQL Server’da Sayıyı Roma Rakamına Çeviren Fonksiyon

Herkese merhaba,

Bu yazıda SQL Server’da sayıyı roma rakamına çeviren fonksiyon ile ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda elinizdeki sayıyı roma rakamına çevirmek isteyebilirsiniz.

Aşağıdaki fonksiyonu kullanarak siz de bu işlemi kolaylıkla yapabilirsiniz.

CREATE  FUNCTION RomaRakaminaCevir
(
    @Sayi BIGINT
)
RETURNS VARCHAR(MAX)
BEGIN

    DECLARE @Sonuc VARCHAR(MAX),
            @Rakamlar VARCHAR(MAX),
            @MutlakDegerliSayi BIGINT,
            @Basamak BIGINT,
            @Kalan BIGINT;

    SET @Sonuc = '';
    SET @Rakamlar = 'IVXLCDM'; 

    IF @Sayi = 0
        SET @Sonuc = '0';

    ELSE
    BEGIN

        SELECT @Basamak = 1,
               @MutlakDegerliSayi  = ABS(@Sayi);
        WHILE (@Basamak <= 5)
        BEGIN
            SET @Kalan = @MutlakDegerliSayi % 10;
            SET @MutlakDegerliSayi = @MutlakDegerliSayi / 10;
            SELECT @Sonuc = CASE
                            WHEN @Kalan IN ( 0, 1, 2, 3 ) THEN
                                REPLICATE(SUBSTRING(@Rakamlar, @Basamak, 1), @Kalan) + @Sonuc
                            WHEN @Kalan IN ( 4 ) THEN
                                SUBSTRING(@Rakamlar, @Basamak, 2) + @Sonuc
                            WHEN @Kalan IN ( 5, 6, 7, 8 ) THEN
                                SUBSTRING(@Rakamlar, @Basamak + 1, 1) + REPLICATE(SUBSTRING(@Rakamlar, @Basamak, 1), @Kalan - 5) + @Sonuc
                            WHEN @Kalan IN ( 9 ) THEN
                                SUBSTRING(@Rakamlar, @Basamak, 1) + SUBSTRING(@Rakamlar, @Basamak + 2, 1) + @Sonuc
                        END;

            SET @Basamak = @Basamak + 2;

        END;

        SET @Sonuc = REPLICATE('M', @MutlakDegerliSayi) + @Sonuc;

        IF @Sayi < 0
            SET @Sonuc = '-' + @Sonuc;

    END;

    RETURN @Sonuc;

END;



--Kullanımı

SELECT dbo.RomaRakaminaCevir(563)

Fonksiyonu oluşturup yukarıdaki kodu çalıştırdığınızda aşağıdaki sonucu göreceksiniz.

SQL Server’da Sayıyı Roma Rakamına Çeviren Fonksiyon

Görüldüğü üzere sayının roma rakamı karşılığı gelmiş oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

288 Kez Okundu