Funksiyalarni o‘rgatishni davom ettiraman. Bu maqolada ma’lumotlarni tahrirlab chiqarish uchun mo‘ljallangan funksiyalar bilan tanishtirib o‘taman. Yozuv tipidagi ustunlardan tashqari son ko‘rinishidagi ustunlarni ham tahrirlab chiqarishni ko‘rsataman.
Bu funksiyalarni o‘rganishda bizga “func” degan quyidagi jadval kerak bo‘ladi.

11

Dastlabki funksiyamiz kerakli simvolni yozuvlar ichidan qidirishga mo‘ljallangan. Kerakli yozuv tanlanadi va qidirish kerak bo‘lgan simvol berildai va bu simvol nechanchi tartibda turgani son ko‘rinishida ekranga chiqadi, bu ishni amalga oshiruvchi funksiya nomi “Instr” deb nomlanadi.  Misol, “jamoa” ustunidagi barcha ma’lumotlarda ”e” simvoli nechanchi tartibda ekanligini chiqaruvchi so‘rov tuzilsin.

select instr(jamoa, 'e') from func;

21

ko‘rib turibsizki, so‘zda “e” simvoli dastlab uchragan tartib nomeri ekranga chiqdi. Bu funksiya shu tariqa ishlaydi, keyin uchraganlarini hisobga olmaydi.

Hisobotlar tayorlashda, hisobotni o‘qish uchun, qulay bo‘lishi juda muhim sanaladi. Shuning uchun har bir chiqariladigan simvol yoki sonlar bir hil tartibda chiqishi lozim ya’ni uzun so‘zlar ham qisqa so‘zlar ham bir hil uzunlikda chiqishi maqsadga muvofiqdir. SQL da bu vazifani “PAD” funksiyasi bajaradi, faqat bu funksiyani oldiga qisqa bo‘lgan so‘zlar to‘ldirilishi uchun qaysi tomondan boshlab to‘ldirilishini ko‘rsatuvchi L(left) yoki R(right) harflar qo‘shilishi lozim. To‘ldirilish? Tushunarsiz bo‘ldimi? Yetmagan harflar o‘rnini siz belgilagan simvollar bilan to‘ldirib, ekranga chiqaradi. Bu funksiya quyidagicha ishlaydi: Qaysi tomondan to‘ldirish kerakligiga qarab “lpad” yoki ”rpad” funksiyasi tanlanadi, jadvaldagi kerakli ustun nomi beriladi, ma’lumotlar necha simvoldan iborat bo‘lib chiqishi kerakligi ko‘rsatiladi va yetmagan simvollar o‘rnini qaysi simvol bilan to‘ldirish kerakligi beriladi. Misol, o‘yinchi ismlari 10 ta simvoldan qilib chiqarilsin va yetmagan simvollar o‘rniga chap tomondan “*” simvoli yozilsin.

select lpad(uyinchi, 10, '*') from func;

31

yoki, o‘yinchilarning narxi bir tikisda chiqib, yetmagan simvol o‘rniga o‘ng tomondan “*” simvoli yozilsin.

select rpad(narxi, 10, '*') from func;

41

Keyingi funksiyamiz “trim” deb nomlanadi va berilgan simvol so‘z yoki sonda ishlatilsa, shu bilan birga faqat boshi yoki oxirida ishlatilsa shu simvolni o‘chirib beradi. Misol, jamoa nomining boshi yoki oxirida “l” ishlatilgan bo‘lsa, ularni o‘chirish so‘rovi tuzilsin.

select trim('l' from jamoa) from func;

51

Qolgan funksiyalar son tipidagi ustunlar uchun mo‘ljallangan. Dastlab nazariyasini yozib, keyin barchasiga bir hil tipdagi misol ko‘rsataman.

Funksiya “round”, o‘z nomi bilan aytib turibdi, yaxlitlash. Sonlarni yaxlitlab ekranga chiqarish uchun ishlatiladi.

Keyingi funksiya “trunc” deb nomlanadi va sonlarni butun qismini olib, kasr qismini tashlab yuborib ekranga chiqariladi(yaxlitlash amalga oshirilmaydi).

Navbatdagi funksiyamiz “mod” qoldiq chiqarish. Kasr sonlar hosil bo‘lishiga yo‘l qo‘ymaydi, aksincha qoldig‘ini chiqarib beradi.

YUqoridagi 3 funksiyaga misol ko‘ramiz, futbolchining narxlarini “2800” ga bo‘lib, chiqgan qiymatlarni dastlab boricha so‘ng yaxlitlab, butun qicmini olib va qoldig‘ini chiqarish so‘rovlari tuzilsin.

select uyinchi, jamoa, narxi/2800 from func;

61

select uyinchi, jamoa, round(narxi/2800) from func;

71

select uyinchi, jamoa, trunc(narxi/2800) from func;

81

select uyinchi, jamoa, mod(narxi, 2800) from func;

91