010. CAST va ma'lumot turlari
Bu mavzuda turlarni o'zgartirish va tekshirish bo'yicha 24 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. (dokon, oson) '123' satrini butun songa aylantiring va 7 qo'shing (natija).
2. (matn, oson) 42 sonini CAST yordamida matnga aylantiring (matn) va uzunligini (uzunlik) chiqaring.
3. (dokon, oson) '2024-05-20' satrini date turiga aylantirib, 10 kun qo'shing.
4. (natija, oson) 10 ni 4 ga bo'lganda kasr natija (natija) chiqishi uchun numeric ga cast qiling.
5. (dokon, oson) Mahsulot narxini butun songa (int) cast qiling (birinchi 5).
6. (dokon, o'rta) Mijoz id sini matnga cast qilib, ism bilan birlashtiring: 'id-ism' (birinchi 5).
Kutilgan natija
7. (dokon, o'rta) '3.14159' ni numeric(5,2) ga cast qiling (pi).
8. (a, o'rta) TRUE ni integer ga, 0 ni boolean ga cast qiling (a, b).
9. (tur, o'rta) Narxning ma'lumot turini pg_typeof bilan chiqaring (tur).
10. (dokon, o'rta) Sana ustidan timestamp ga cast qilib, 12 soat qo'shing: 2024-01-01 uchun.
11. (maktab, oson) O'quvchi telefonining oxirgi 4 raqamini int ga cast qiling (birinchi 3, telefoni borlar).
12. (maktab, oson) Ball ustunini numeric ga cast qilib, ballar o'rtachasini 2 xonada chiqaring.
13. (maktab, o'rta) Tug'ilgan sanani matn sifatida 'YYYYMMDD' (TO_CHAR) va int ga cast qiling (birinchi 3).
14. (maktab, o'rta) pg_typeof bilan oquvchi.jins turi (tur) nima? (char(1)->bpchar).
15. (bank, oson) Balansni bigint ga cast qiling (birinchi 5).
16. (bank, oson) '2024-12-31 23:59:59' satrini timestamp ga cast qilib, yilini chiqaring.
17. (bank, o'rta) Qarz muddatini (oy) yilga aylantirib (muddat_oy/12.0), butun songa yaxlitlab cast qiling (qarz id, yil), birinchi 5 ta.
18. (bank, o'rta) 'abc' ni int ga cast qilish xato beradi. Xavfsiz tekshiruv: faqat raqamlardan iborat satrlarni (~ '^[0-9]+$') filtrlab cast qiling: '12','ab','7' uchun yig'indi.
19. (bank, o'rta) Tranzaksiya summasini int ga, sanani date ga o'tkazib chiqaring (birinchi 3).
20. (kutubxona, oson) Kitob yilini matnga cast qilib, 'yil: 1999' ko'rinishida chiqaring (birinchi 3).
21. (kutubxona, oson) 5 ni real ga, so'ng numeric ga cast qiling: 5/2 natijasi (natija).
22. (kutubxona, o'rta) Ijara olingan sanani matnga aylantirib, uning birinchi 7 belgisini (YYYY-MM) chiqaring (birinchi 3).
23. (kutubxona, o'rta) '{1,2,3}' satrini integer[] ga cast qilib, birinchi elementini chiqaring.
24. (kutubxona, qiyin) '2024-02-30' ni date ga cast qilish xato bo'ladi; to'g'ri sanalarni tekshirish uchun faqat '2024-02-28' ni cast qilib, keyingi kunni chiqaring (keyingi).