开始使用免费开始使用

综合应用

在本练习中,我们将使用 filmcategory 表,通过将分类的 name 与影片的 title 连接起来,创建一个名为 film_category 的新字段。您还将练习如何截断像 film 表中 description 这样的文本列,并且不把单词截断在中间。

为此,我们将使用 REVERSE() 函数,帮助确定在到达 50 个字符之前,description 中最后一个空白字符的位置。该技巧可用于确定您想要截断的最后一个字符的位置,并确保其小于或等于 50 个字符,且不会把单词截断。

这是一个进阶技巧,但我相信您可以做到!让我们开始吧。

本练习是课程的一部分

在 PostgreSQL 中使用函数处理数据

查看课程

练习说明

  • 获取 description 列的前 50 个字符。
  • 确定截断后的 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;
编辑并运行代码