除了一般程式語言可以寫函數之外, SQL 也提供函數的功能,讓開發人員可以把一些邏輯包在函數裡面,使 Query 語法的可讀性更佳。
要新增一個函數,使用 CREATE FUNCTION
,並在後面放置函數名稱和變數,如果變數有預設值,放置 DEFAULT
並加上預設值。
CREATE FUNCTION concat_lower_or_upper(a text, b text, uppercase
boolean DEFAULT false)
RETURNS text
AS
$$
SELECT CASE
WHEN $3 THEN UPPER($1 || ' ' || $2)
ELSE LOWER($1 || ' ' || $2)
END;
$$
LANGUAGE SQL IMMUTABLE STRICT;
如果變數有放置預設值,呼叫的時候可以不給值,否則就一定要給值,不然會跳出 No function matches the given name and argument types.
的錯誤訊息。
完成新增函數之後,明天再接著講,如何呼叫函數。