16 Mart 2010 Salı

SQL Server "T-SQL" Yuvarlama Fonksiyonları...

FLOOR   : Aşağı yuvarla (Ondalık sayının kendinden küçük, en büyük tam sayıyı verir).
CEILING : Aşağı yuvarla (Ondalık sayının kendinden büyük, en küçük tam sayıyı verir).
ROUND  : Sayıya yakın olan tam sayı değerini verir.

SELECT FLOOR(12.252141),
CEILING(12.252141), ROUND(12.252141,0)
Sonuç :     12
    13     12.000000

SELECT FLOOR(12.987363),
CEILING(12.987363), ROUND(12.987363,0)
Sonuç :
    12     13     13.000000

ROUND fonksiyonu 2 parametre alır.
   1- Yuvarlayacağı sayı
   2- Yuvarlama yaparken virgülden sonra dikkate alacağı 'decimal' hane sayısını ifade eder.

    *
ROUND(112.252141,0) = 112.000000
    *
ROUND(112.252141,1) = 112.300000
    *
ROUND(112.252141,2) = 112.250000
    *
ROUND(112.252141,3) = 112.252000
    *
ROUND(112.252141,4) = 112.252100

Kaynak
http://msdn.microsoft.com/en-us/LIbrary/ms175003%28v=sql.100%29.aspx

4 yorum:

Murat dedi ki...

hocam ben o sondaki sıfırları 2 ye düşürmek istiyorum.nasıl yapabilirim?yardımcı olabilir misiniz?

Orhan ÖCAL dedi ki...

Merhaba,
Öncelikle yuvarlama işlemini nerede yani hangi platformda yapmak istiyorsun. Mesela gridview ile yuvarlama yapabilirsin. Yada SQL üzerinde aşağıdaki sorguyu kullanarak yapabilirsin.

SELECT CAST(ROUND(12.252141,0) as decimal)

Buradaki örneği kullandığında görüntülemek istediğin platformda format uygulayabilirsin. ROUND(12.252141,0)

Ufuk dedi ki...

round 2 değil 3 parametre alır
SELECT ROUND(150.9999999, 0,1);
150 çıkar

SELECT ROUND(150.9999999, 0,0);
151 çıkar

Orhan ÖCAL dedi ki...

Merhaba,
ROUND 3.parametreyi isteğe bağlı olarak verebilirsiniz. Aşağıdaki kaynağı dikkatlice incelemenizi tavsiye ederim.

ROUND ( numeric_expression , length [ ,function ] )

Kaynak:
http://msdn.microsoft.com/en-us/LIbrary/ms175003%28v=sql.100%29.aspx