Mettre le tout ensemble
Dans cet exercice, nous allons utiliser les tables film et category pour créer un nouveau champ appelé film_category en concaténant le name de la catégorie avec le title du film. Vous pratiquerez aussi la façon de tronquer des champs de texte, comme la colonne description de la table film, sans couper un mot.
Pour y arriver, nous allons utiliser la fonction REVERSE() pour déterminer la position du dernier caractère d'espacement dans description avant d'atteindre 50 caractères. Cette technique permet d'identifier la position du dernier caractère où vous souhaitez tronquer et de garantir qu'elle est inférieure ou égale à 50 caractères ET qu'aucun mot n'est coupé.
C'est une technique avancée, mais nous savons que vous en êtes capable ! Allons-y.
Cette activité fait partie du cours
Fonctions pour manipuler les données dans PostgreSQL
Instructions de l’exercice
- Obtenez les 50 premiers caractères de la colonne
description. - Déterminez la position du dernier caractère d'espacement de la
descriptiontronquée et soustrayez-la du nombre 50 comme deuxième paramètre dans la première fonction ci-dessus.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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;