007. Satr funksiyalari
Bu mavzuda UPPER, SUBSTRING, SPLIT_PART, REPLACE va boshqalar bo'yicha 39 ta masala bor. Har bir masala oldida qavs ichida sxema nomi va qiyinlik darajasi ko'rsatilgan. Sxemalar Sxemalar va tayyorlov sahifasida berilgan.
Masalani o'zingiz yechib, natijani Kutilgan natija bilan solishtiring. O'zgartiruvchi masalalarda (INSERT, UPDATE, DELETE, DDL) natija shartda aytilgan tekshiruv so'rovidan olingan. Natija 10 qatordan ko'p bo'lsa, birinchi 10 qator ko'rsatilgan.
1. (katta, oson) Mijoz ismlarini katta harflarda (katta) chiqaring, birinchi 5 ta.
2. (dokon, oson) Shahar nomlarini kichik harflarda chiqaring (noyob, alifbo).
3. (dokon, oson) Mahsulot nomi uzunligini chiqaring (nom, uzunlik), birinchi 5 ta.
4. (dokon, oson) Mijoz ismining birinchi 3 harfini SUBSTRING bilan chiqaring (birinchi 5).
5. (dokon, oson) Mijoz ismining chap 4 harfini LEFT bilan, o'ng 3 harfini RIGHT bilan chiqaring (birinchi 5).
6. (dokon, oson) 'Salom' va 'Dunyo' so'zlarini CONCAT bilan bo'shliq orqali qo'shing (salom).
7. (dokon, oson) Shahar nomlarini INITCAP bilan chiqaring: 'toshkent shahri' (natija).
8. (dokon, oson) ' bo''sh joy ' satrini TRIM bilan tozalang va uzunligini (uzunlik) chiqaring.
9. (dokon, o'rta) Email manzilining '@' belgisidan keyingi qismini (domen) SPLIT_PART bilan chiqaring (emaili borlar, birinchi 5).
10. (dokon, o'rta) Email dagi '@' dan oldingi qismni (foydalanuvchi nomi) SPLIT_PART bilan chiqaring (birinchi 5).
11. (dokon, o'rta) Mijoz ismidagi bo'shliqdan keyingi familiyani SPLIT_PART bilan ajrating (familiya) va familiyalar bo'yicha guruhlab sonini chiqaring.
12. (dokon, o'rta) Mahsulot nomidagi raqamlarni nechanchi pozitsiyada boshlanishini POSITION(' ' IN nom) bilan chiqaring (birinchi 5).
13. (dokon, o'rta) Mahsulot nomidagi 'Telefon' so'zini 'Smartfon' bilan REPLACE qiling (nomi Telefon bilan boshlanganlar).
14. (dokon, o'rta) Mijoz id sini 5 xonali nol bilan to'ldirib (LPAD) chiqaring: 00001 (birinchi 5).
15. (dokon, o'rta) Shahar nomini 12 belgigacha o'ngdan nuqta bilan to'ldiring (RPAD), noyob shaharlar.
16. (maktab, oson) O'quvchi ismlarini katta harflarda chiqaring (birinchi 5).
17. (maktab, oson) Fan nomlari uzunligini chiqaring (nom, uzunlik).
Kutilgan natija
18. (maktab, oson) O'qituvchi ismining bosh 3 harfini chiqaring.
19. (maktab, oson) O'quvchi ismidan familiyani ajrating (SPLIT_PART, birinchi 5 ta).
20. (maktab, o'rta) O'quvchi ismining bosh harflarini (ism + familiya) 'A.K.' ko'rinishida (bosh) chiqaring, birinchi 5 ta.
21. (maktab, o'rta) Telefon raqamining oxirgi 4 raqamini chiqaring (telefoni bor o'quvchilar, birinchi 5).
22. (maktab, o'rta) Telefondan '+' belgisini olib tashlang (TRANSLATE yoki REPLACE), birinchi 5 ta.
Kutilgan natija
23. (maktab, o'rta) O'quvchi ismi 'M' bilan boshlansa, ismning teskari (REVERSE) ko'rinishini chiqaring.
Kutilgan natija
24. (bank, oson) Bank mijozlari ismini kichik harflarda chiqaring (birinchi 5).
25. (bank, oson) Filial nomlarini chiqaring: nom va uzunligi.
26. (bank, o'rta) Hisob id sini 'HS-000123' ko'rinishida (prefiks HS-, 6 xona) chiqaring (birinchi 5).
27. (bank, o'rta) Telefonni '+998 93 xxx xx xx' ga o'xshash niqoblang: faqat oxirgi 4 raqamni qoldirib, qolganini '*' bilan (telefon borlar, birinchi 5).
Kutilgan natija
28. (bank, o'rta) Bank mijozi ismi va filial id sini STRING bilan 'ism (F1)' ko'rinishida chiqaring (birinchi 5).
Kutilgan natija
29. (kutubxona, oson) Kitob nomlarini katta harflarda chiqaring (birinchi 5).
30. (kutubxona, oson) Muallif ismi uzunligi eng katta bo'lgan muallifni chiqaring.
31. (kutubxona, o'rta) Muallif ismining oxirgi so'zini (familiyasi) SPLIT_PART(ism,' ',2) bilan chiqaring.
Kutilgan natija
32. (kutubxona, o'rta) A'zo emailidan domen nomini ajratib, domen bo'yicha sonini chiqaring.
33. (kutubxona, o'rta) Kitob nomidagi so'zlar sonini chiqaring: LENGTH(nom)-LENGTH(REPLACE(nom,' ',''))+1 (birinchi 5).
Kutilgan natija
34. (kutubxona, o'rta) Kitob nomi oxirgi so'zining birinchi harfini katta harf bilan chiqaring (birinchi 5).
35. (kutubxona, qiyin) Kitob nomidagi 'Kitob ' prefiksini olib tashlab, qolgan qismni chiqaring: REGEXP_REPLACE bilan (birinchi 5).
36. (kutubxona, qiyin) Kitob nomidan raqamni REGEXP_REPLACE(nom,'[^0-9]','','g') bilan ajratib, butun songa aylantiring va yig'indisini chiqaring.
37. (dokon, qiyin) Mijoz emailidagi raqamlarni ajratib olib, ularning eng kattasini chiqaring.
38. (bank, qiyin) Mijoz ismini 'FAMILIYA, I.' ko'rinishida chiqaring (birinchi 5).
39. (maktab, qiyin) Har bir sinf uchun o'quvchi ismlarini vergul bilan STRING_AGG yordamida birlashtirib chiqaring (sinf_id, royxat), ism bo'yicha tartiblab.
Kutilgan natija
1 | Aziz Ergashev, Doniyor Ergashev, Laylo Hasanova, Madina Karimova, Nilufar Hasanova, Sevara Karimova, Sherzod Ismoilov, Timur Ismoilov
2 | Aziz Ergashev, Doniyor Ergashev, Laylo Hasanova, Madina Karimova, Nilufar Hasanova, Sevara Karimova, Sherzod Ismoilov, Timur Ismoilov
3 | Aziz Ergashev, Doniyor Ergashev, Laylo Hasanova, Madina Karimova, Nilufar Hasanova, Sevara Karimova, Sherzod Ismoilov, Timur Ismoilov
4 | Aziz Ergashev, Doniyor Ergashev, Laylo Hasanova, Madina Karimova, Nilufar Hasanova, Sevara Karimova, Sherzod Ismoilov, Timur Ismoilov
5 | Aziz Ergashev, Doniyor Ergashev, Laylo Hasanova, Madina Karimova, Nilufar Hasanova, Sevara Karimova, Sherzod Ismoilov, Timur Ismoilov