รวมทุกอย่างเข้าด้วยกัน
ในแบบฝึกหัดนี้ เราจะใช้ตาราง film และ category เพื่อสร้างฟิลด์ใหม่ชื่อ film_category โดยการต่อสตริงจากคอลัมน์ name ของหมวดหมู่เข้ากับ title ของภาพยนตร์ นอกจากนี้ยังได้ฝึกการตัดทอนข้อความในฟิลด์อย่างคอลัมน์ description ของตาราง film โดยไม่ตัดคำกลางประโยค
เพื่อให้ได้ผลลัพธ์ที่ต้องการ เราจะใช้ฟังก์ชัน REVERSE() เพื่อช่วยหาตำแหน่งของช่องว่างสุดท้ายใน description ก่อนถึงอักขระที่ 50 เทคนิคนี้ช่วยให้กำหนดตำแหน่งอักขระสุดท้ายที่ต้องการตัดทอนได้อย่างแม่นยำ โดยมั่นใจว่าความยาวไม่เกิน 50 อักขระและไม่ตัดคำกลาง
นี่เป็นเทคนิคขั้นสูง แต่เชื่อว่าทำได้แน่นอน ไปเริ่มกันเลย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ฟังก์ชันสำหรับจัดการข้อมูลใน PostgreSQL
คำแนะนำการฝึกหัด
- ดึงอักขระ 50 ตัวแรกจากคอลัมน์
description - หาตำแหน่งของช่องว่างสุดท้ายใน
descriptionที่ถูกตัดทอนแล้ว จากนั้นนำไปลบออกจากเลข 50 เพื่อใช้เป็น parameter ที่สองในฟังก์ชันแรก
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
UPPER(c.name) || ': ' || f.title AS film_category,
-- Truncate the description without cutting off a word
___(description, 50 -
-- Subtract the position of the first whitespace character
___(
' ' IN REVERSE(LEFT(description, 50))
)
)
FROM
film AS f
INNER JOIN film_category AS fc
ON f.film_id = fc.film_id
INNER JOIN category AS c
ON fc.category_id = c.category_id;