NUMBER FUNCTIONS ( SAYI FONKSİYONLARI )
ROUND(45.926,2) => 45.93 ( Noktadan sonra iki basamak alacaksın 5 ‘ ten büyükse üste, 5 den küçükse alta yuvarlayacaksın)
TRUNC(45.926,2) => 45.92 ( Noktadan sonra iki basamak alacaksın ne olursa olsun alta yuvarlayacaksın.
MOD(1600, 300) => 100 ( 1600 ü 300 e böleceksin kalan değeri alacaksın )
İÇ İÇE FONKSİYON KULLANIMI
İç içe fonksiyon kullanırken parantezin en iç tarafından en dış tarafına doğru gidilir. Aşağıdaki örneğe bakalım.
SELECT last_name, UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 8), ‘_US’)) FROM employees
WHERE department_id = 60;
Yukarıdaki örnekte ilk başta SUBSTR kısmını kullanacağız. Ne diyor bize?
SUBSTR(LAST_NAME, 1,8) => LAST_NAME ‘ in 1 den başla 8 tane al. Örnek olarak YEŞİLTEPE olursa ve last_name ‘ i YEŞİLTEPE olanın department_id ‘ si de 60 ise durum şöyle olacaktır.
SUBSTR(LAST_NAME, 1,8) => YEŞİLTEP
Daha sonra CONCAT kısmını almamız gerekiyor. SUBSTR kısmını bulmuştuk onun değer YEŞİLTEP çıkmıştı. O halde CONCAT kısmı şöyle olacaktır;
CONCAT(‘YEŞİLTEP’, ‘_US’) => CONCAT birleştirme olduğundan dolayı YEŞİLTEP ile _US ‘ ı birleştirecek demektir. O halde CONCAT çıktısı şu şekilde olacaktır;
CONCAT(‘YEŞİLTEP’, ‘_US’) => YEŞİLTEP_US
Son olarak en dış tarafta UPPER yer almaktadır. UPPER ne yapıyordu? UPPER karakterleri büyüterek getiriyordu. Zaten CONCAT çıktısından sonra sonuç YEŞİLTEP_US ‘ dı. Bu zaten büyük durumda.
Yani en başa alacak olursak sorgu şöyle olacaktır. Employees tablosundan last_name ‘ i ve UPPER(CONCAT(SUBSTR(LAST_NAME, 1,8), ‘_US’)) ‘ ı getir ama bir şartım var department_id ‘ si 60 olanların bu bilgilerini getireceksin!!!
Bu durumda önümüze getirilen tablo şu şekilde olacaktır.
LAST_NAME | UPPER(CONCAT(SUBSTR(LAST_NAME, 1,8), ‘_US’))
YEŞİLTEPE | YEŞİLTEP_US