整合應用
在這個練習中,你將使用 film 和 category 資料表,將類別的 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;