GBase 8s
其他
问答
boolean类型作为自定义函数参数,调用函数时传递表达式会提示语法错误。是否有其他方式实现我想要的效果?
发表于2024-03-10 17:39:04103次浏览5个评论
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】: v8.8
【操作系统】:
【CPU】:
【问题描述】*:
我自定义了如下函数:
create function if_fuc(b boolean, f1 integer, f2 integer)
returns integer;
if b then return f1; else return f2; end if;
end function;调用:
call if_fuc(1=1, 1, 0) -- 报错
select if_fuc(u.age > 18, 1, 0) from user_info u -- 报错
call if_fuc('t', 1, 0) -- 不报错
select if_fuc(u.enable, 1, 0) from user_info u -- enable为boolean时,不报错评论
登录后才可以发表评论
liaosnet发表于 2年前
最佳回答
GBase用户15163发表于 2年前
@liaosnet:感谢您的回答!这种情况是否有其他办法可以实现我想要的功能?即自定义函数接受调用处以表达式的方式传参
liaosnet发表于 2年前
@GBase用户15163:现有阶段不支持。
GBase用户15163发表于 2年前
@liaosnet:好的,感谢
崔哥发表于 7个月前
不知香积寺,数里入云峰。古木无人径,深山何处钟。泉声咽危石,日色冷青松。薄暮空潭曲,安禅制毒龙。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526
原因是:SPL是直接把你的参数值传入了的,并不会对它进行表达式转换。