Aan de slagGa gratis aan de slag

Alles samenbrengen

In deze oefening ga je de tabellen film en category gebruiken om een nieuw veld film_category te maken door de categorienaam name te concateneren met de title van de film. Je oefent ook hoe je tekstvelden, zoals de kolom description in de tabel film, kunt inkorten zonder een woord door te snijden.

Om dit te doen gebruiken we de functie REVERSE() om de positie te bepalen van het laatste witruimte-teken in de description voordat we 50 tekens bereiken. Deze techniek kun je gebruiken om de positie te bepalen van het laatste teken waarop je wilt afkappen, en om te garanderen dat het minder dan of gelijk aan 50 tekens is EN geen woord afbreekt.

Dit is een geavanceerde techniek, maar ik weet dat je het kunt! Laten we erin duiken.

Deze oefening maakt deel uit van de cursus

Functies voor het manipuleren van data in PostgreSQL

Cursus bekijken

Oefeninstructies

  • Haal de eerste 50 tekens op van de kolom description
  • Bepaal de positie van het laatste witruimte-teken in de ingekorte kolom description en trek dit af van het getal 50 als de tweede parameter in de eerste functie hierboven.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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;
Code bewerken en uitvoeren