Oracle Ders 23 – Single Row Functions – 03

Merhaba Arkadaslar,
Oracle da Single Row Function konusuna devam ediyorum, bu yazimda Numerik Fonksiyonlar hakkinda bildiklerimi paylasacagim.

  • ROUND
  • TRUNC
  • MOD
  • ABS
  • POWER fonksiyonlarini sirayla isleyelim.

ROUND fonksiyonu
ROUND(n,p) genel formatina sahiptir. Round yuvarlama islemi yapar. Ornekler uzerinde devam edelim.

select round(23.75) from dual;  // 24 
select round(23.44) from dual;  // 23
select round(23.57) from dual;  // 24
select round(23.4999999999) from dual; //23

Orneklere dikkat ederseniz ondalikli sayilari yuvarladigimizi gorebilirsiniz. Eger virgulden sonraki basamak sayisini belirtmezsek varsayilan olarak 0 dir (p). Virgulden sonraki ilk basamak a bakar ve 5 ve 5ten buyukse bir ust sayiya yuvarlar. dort bucuktan bes 🙂

p (precision/hassasiyet) degerini 1 verdigimizde, yani virgulden sonra 1 basamak olsun diyoruz. Bu durumda virgulden sonraki 2. basamaga bakiyor ve 5 ve 5ten buyukse , 1.basamagi bir degere yuvarliyor.

select round(23.75,1) from dual;  //23.8
select round(23.44,1) from dual;  //23.4
select round(23.57,1) from dual;  //23.6
select round(23.4999999999,1) from dual;  //23.5
select round(23.973,1) from dual;   // 24

p degerini -1 verdigimizde ,

select round (23.75, -1) from dual;  //20
select round (24.454, -1) from dual; //20
select round (27,-1) from dual;  //30
select round (21,-1) from dual;  //20
select round (39,-1) from dual; //40
select round(45.1,-1) from dual; //50

Dikkat ederseniz -1 verdigimizde, birler basamagina gelip bakar ve 5 ten kucukse bir alt onluk sayiya , eger 5 veya 5 ten buyukse bir ust onluk degere yuvarlar.

p degerini -2 verdigimizde ,

select round(45.1,-2) from dual; //0
select round (55.2, -2) from dual; //100

Bu sefer de onlar basamagina gelip bakmakta 5 ten kucukse bir alt 100luk degere (0) , 5 veya 5 ten buyukse bir ust 100luk degere (100) yuvarlamaktadir.

Round fonksiyonu mantigi bu sekildedir, gayet kolay 🙂

TRUNC fonksiyonu
Trunc fonksiyonu budama islemi yapar. Genel formati trunc(n,p) dir. Ornekler uzerinde incelemeye devam edelim.

select trunc(23.75) from dual;  // 23
select trunc(23.44) from dual;  // 23
select trunc(23.57) from dual;  // 23
select trunc(23.4999999999) from dual; //23

Gordugunuz gibi yuvarlama islemi yapmamistir virgulden sonraki tum kismi kesip atmistir.

p degeri 1 oldugunda ;

select trunc(23.75,1) from dual;  //23.7
select trunc(23.44,1) from dual;  //23.4
select trunc(23.57,1) from dual;  //23.5
select trunc(23.4999999999,1) from dual;  //23.4
select trunc(23.973,1) from dual;   // 23.9

Gordugunuz gibi round fonksiyonunun aksine yuvarlama yapmak yerine, p degeri kadar noktadan sonraki rakama izin vermekte geri kalani kesip atmaktadir.

p degeri -1 oldugunda;

select trunc (23.75, -1) from dual;  //20
select trunc (24.454, -1) from dual; //20
select trunc (27,-1) from dual;  //20
select trunc (21,-1) from dual;  //20
select trunc (39,-1) from dual; //30
select trunc(45.1,-1) from dual; //40

Gordugunuz gibi , birler basamagina gelip birler basamagi dahil tum sayilari kirpmaktadir.(saga dogru)

p degeri -2 oldugunda ;

select trunc(45.1,-2) from dual; //0
select trunc (55.2, -2) from dual; //0
select trunc (199,-2) from dual;  //100

Ayni mantikla onlar basamagina gelmekte ve onlar basamagi dahil saga dogru tum sayilari kirpmaktadir.

MOD fonksiyonu
Mod fonksiyonu bize yabanci degil, zaten bir cok programlama dilinde kullandigimiz bir yapidir.  Mod islemi a/b isleminde kalan degeri verir. mod(n1, n2) genel formatina sahiptir.

select mod(23,4) from dual;  //3

ABS fonksiyonu
ABS( absolute) fonksiyonuna da yabanci degiliz, mutlak deger fonksiyonudur kendisi.

select abs (10-25) from dual;  // 15

Power fonksiyonu
Power fonksiyonu us alma fonksiyonudur, bu fonksiyon yapisi da diger programlama dillerinde mevcuttur.

select power(3,4) from dual; //81

Yazima burada son veriyorum.

Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *