Ghép tất cả lại với nhau
Trong bài tập này, chúng ta sẽ dùng các bảng film và category để tạo một trường mới tên là film_category bằng cách nối name của category với title của phim. Bạn cũng sẽ luyện cách cắt ngắn (truncate) các trường văn bản như cột description của bảng film mà không làm đứt một từ.
Để làm việc này, chúng ta sẽ dùng hàm REVERSE() để xác định vị trí ký tự khoảng trắng cuối cùng trong description trước khi đạt đến 50 ký tự. Kỹ thuật này giúp bạn xác định vị trí của ký tự cuối cùng muốn cắt và đảm bảo tổng độ dài nhỏ hơn hoặc bằng 50 ký tự VÀ không cắt ngang một từ.
Đây là một kỹ thuật nâng cao nhưng mình tin bạn làm được! Cùng bắt đầu nhé.
Bài tập này là một phần của khóa học
Các hàm thao tác dữ liệu trong PostgreSQL
Hướng dẫn bài tập
- Lấy 50 ký tự đầu tiên của cột
description - Xác định vị trí ký tự khoảng trắng cuối cùng của phần
descriptionđã cắt ngắn và lấy 50 trừ đi vị trí đó để làm tham số thứ hai trong hàm đầu tiên ở trên.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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;