Всё вместе
В этом упражнении мы будем работать с таблицами film и category, чтобы создать новое поле film_category путём объединения названия категории name с названием фильма title. Вы также потренируетесь обрезать текстовые поля — например, столбец description таблицы film — не разрывая слова на границе.
Для этого мы воспользуемся функцией REVERSE(), которая поможет определить позицию последнего пробела в строке description до достижения 50 символов. Этот приём позволяет найти позицию последнего символа для усечения, гарантируя, что результат не превысит 50 символов и не оборвёт слово на середине.
Это продвинутая техника, но вы справитесь! Приступим.
Это упражнение является частью курса
Функции для работы с данными в PostgreSQL
Инструкции к упражнению
- Получите первые 50 символов столбца
description. - Определите позицию последнего пробела в усечённом столбце
descriptionи вычтите её из числа 50 — это будет второй аргумент первой функции.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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;