postgre如何创建SQL函数,使其接受日期或null值



如何创建SQL函数,使其接受日期或空值

CREATE OR REPLACE function func(dob timestamp)
RETURNS TABLE(greet varchar, age int) AS $$
SELECT CASE
WHEN dob IS NULL
THEN ('no birth'::text, 0)
WHEN dob >= '2000-01-01'
THEN ('post millennium', 21)
ELSE ('does not match', -1)
END
$$
language sql stable strict;

这里我要接受日期值或null。当我传递null时,它不起作用。我得到了空的记录

您需要删除strict属性。

手动报价

RETURNS NULL ON NULL INPUT或STRICT表示函数的任何参数为NULL时总是返回NULL。如果指定了此参数,则当存在null参数时,函数不会执行;而是自动假定为空结果。

(强调矿(

最新更新