Sätt ihop allt
I den här övningen använder vi tabellerna film och category för att skapa ett nytt fält kallat film_category, genom att sammanfoga kategorins name med filmens title. Du får också öva på att trunkera textfält – till exempel kolumnen description i tabellen film – utan att skära mitt i ett ord.
För att åstadkomma detta använder vi funktionen REVERSE() för att hitta positionen för det sista blanksteget i description innan vi når 50 tecken. Den här tekniken gör det möjligt att avgöra var texten ska kapas så att resultatet är högst 50 tecken långt och inte delar ett ord på mitten.
Det är en avancerad teknik, men nu kör vi!
Den här övningen är en del av kursen
Funktioner för datamanipulering i PostgreSQL
Övningsinstruktioner
- Hämta de första 50 tecknen i kolumnen
description - Bestäm positionen för det sista blanksteget i den trunkerade kolumnen
descriptionoch subtrahera det från talet 50 som andra parameter i den första funktionen ovan.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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;