PostgreSQL 9.5.4
我有以下功能,我试图使用正则表达式中的参数。像
这样的东西CREATE OR REPLACE FUNCTION test(lastname text, firstname text, birthdate date)
RETURNS SETOF view_patient AS
$BODY$
select * from testing t
where t.lastname ~* '^' || $1 || ''
order by t.lastname
$BODY$
LANGUAGE sql VOLATILE;
返回的错误是:
错误:WHERE的参数必须是boolean类型,而不是类型文本LINE 55: 其中t.lastname~ *'^'|| 1美元|| ''
这是怎么做到的?
TIA
答案 0 :(得分:5)
你需要在括号之间放置连接(你可以在最后删除空字符串:
where t.lastname ~* ('^' || $1)
或者:
where t.lastname ~* concat('^', $1)