Łączymy wszystko w całość
W tym ćwiczeniu użyjemy tabel film i category, aby utworzyć nowe pole film_category przez połączenie nazwy kategorii (name) z tytułem filmu (title). Przećwiczysz też skracanie pól tekstowych – takich jak kolumna description w tabeli film – w taki sposób, żeby nie urwać słowa w połowie.
W tym celu skorzystamy z funkcji REVERSE(), która pomoże ustalić pozycję ostatniej spacji w kolumnie description przed osiągnięciem 50 znaków. Dzięki tej technice możesz znaleźć pozycję ostatniego znaku, w którym chcesz uciąć tekst – mając pewność, że wynik ma co najwyżej 50 znaków i żadne słowo nie jest urwane w środku.
To zaawansowana technika, ale dasz radę! Do dzieła.
To ćwiczenie jest częścią kursu
Funkcje do manipulowania danymi w PostgreSQL
Instrukcje do ćwiczenia
- Pobierz pierwsze 50 znaków kolumny
description. - Wyznacz pozycję ostatniej spacji w skróconej kolumnie
descriptioni odejmij ją od liczby 50 jako drugi argument pierwszej funkcji.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;