使用 like 或 ilike 创建 SQL/ PLpgSQL 函数

Using like or ilike to create SQL/ PLpgSQL function

我正在尝试创建函数 Animals(为方便起见),它采用动物名称的首字母和 returns 列表中动物的全名,例如C=> Cow, Cat... 我面临的问题是 like 函数之后的字符串被当作字符串处理(我希望它被输入)。 以下无效。

create function
   Animalfun(input text) returns text
as $$
SELECT name
FROM Animals
WHERE name like 'input%';
$$ language sql;

select name from Animals where name = Animalfun('A');

据推测,您想要:

SELECT name FROM Animals WHERE name like input || '%'