【发布时间】:2015-01-29 19:13:24
【问题描述】:
如何让这个伪代码在 Postgresql 中工作:
create or replace function getf(arg character varying(255)) returns int
as $$
if arg = 'a' then return 1;
else return 2;
$$ language sql;
基于参数,我需要返回一些值,并且不需要查询其他表。只需要在函数内部构建一个逻辑。 尝试将 if 替换为 when 子句,但不知道该怎么做。
谢谢!
【问题讨论】:
-
@Patrick 的回答很好。但请注意,大多数时候您不需要过程代码。发布真正的问题,您可能会对答案感到惊讶。
-
在这种情况下,我必须创建派生表,以防某些具有某些值的字段创建特定的状态代码(基于返回某些状态的传入值的纯业务逻辑)。
-
这个“业务逻辑”可能可以在查询中使用
EXISTS()来实现,甚至可以使用查找表。功能很昂贵,请参阅下面@Tometzky 答案中的immutable strictoptions+remark。
标签: postgresql function