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.
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.