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
您需要在括号之间放置连接(并且您可以在末尾删除空字符串:
where t.lastname ~* ('^' || $1)
或者:
where t.lastname ~* concat('^', $1)