Zacznij terazZacznij za darmo

Łą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

Zobacz kurs

Instrukcje do ćwiczenia

  • Pobierz pierwsze 50 znaków kolumny description.
  • Wyznacz pozycję ostatniej spacji w skróconej kolumnie description i 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;
Edytuj i uruchom kod