Bắt đầu ngayBắt đầu miễn phí

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 filmcategory để 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

Xem khóa học

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;
Chỉnh sửa và Chạy Mã