НачатьНачать бесплатно

Всё вместе

В этом упражнении мы будем работать с таблицами film и category, чтобы создать новое поле film_category путём объединения названия категории name с названием фильма title. Вы также потренируетесь обрезать текстовые поля — например, столбец description таблицы film — не разрывая слова на границе.

Для этого мы воспользуемся функцией REVERSE(), которая поможет определить позицию последнего пробела в строке description до достижения 50 символов. Этот приём позволяет найти позицию последнего символа для усечения, гарантируя, что результат не превысит 50 символов и не оборвёт слово на середине.

Это продвинутая техника, но вы справитесь! Приступим.

Это упражнение является частью курса

Функции для работы с данными в PostgreSQL

Посмотреть курс

Инструкции к упражнению

  • Получите первые 50 символов столбца description.
  • Определите позицию последнего пробела в усечённом столбце description и вычтите её из числа 50 — это будет второй аргумент первой функции.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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;
Редактировать и запускать код