Об'єднаймо все разом
У цій вправі ми використаємо таблиці 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;