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.

277 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!