Herkese merhaba,
Bu yazıda SQL Server’da para birimini özelleştirerek yuvarlamak hakkında bilgi vereceğim.
Arkadaşım bir yazılım çalışması yaparken aşağıdaki şekilde bir yuvarlama fonksiyonuna ihtiyaç duydu. İşlemin programlama tarafında yapılmasından ziyade ilk olarak SQL Server tarafında çözmeyi denedik ve oldu da.
Aşağıdaki fonksiyon ne yapıyor.
- Küsürat sıfırdan büyükse bir basamak yuvarlayıp alıyor.
- Küsürat sıfır ise doğrudan sayı değerini alıyor.
Kodu ve kullanımını aşağıda görmektesiniz.
CREATE FUNCTION dbo.OzelYuvarlamaYaptirma
(
@veri DECIMAL(25, 6)
)
RETURNS VARCHAR(30)
AS
BEGIN
DECLARE @sonuc VARCHAR(30);
IF (SUBSTRING(CAST(@veri AS VARCHAR(30)), CHARINDEX('.', @veri) + 1, LEN(@veri))) > 0
BEGIN
SET @sonuc = CAST(ROUND(@veri, 1) AS DECIMAL(25, 1));
END;
ELSE
BEGIN
SET @sonuc = CAST(@veri AS INT);
END;
RETURN CAST(@sonuc AS VARCHAR(30));
END;
--Kullanımı
SELECT dbo.OzelYuvarlamaYaptirma('25.0000');
SELECT dbo.OzelYuvarlamaYaptirma('25.2442');
SELECT dbo.OzelYuvarlamaYaptirma('25.4945');
SELECT dbo.OzelYuvarlamaYaptirma('25.9900');
Kodu çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.
Görüldüğü üzere istediğimiz sonucu elde etmiş olduk.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.