我的要求是将可选参数写入函数。参数是可选的,有时我会添加或者我不会将参数传递给函数。任何人都可以帮助我如何编写函数。
我写得像
select *
from test
where field3 in ('value1','value2')
and ($1 is null or field1 = $1)
and ($2 is null or field2 = $2)
and ($3 is null or field3 = $3);
我将参数传递给查询,但我的输出不是预期的。当我传递所有三个参数时,我的输出是正确的,否则它不是预期的输出。
原文由 indu 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以通过提供默认值来定义可选参数。
您可以从末尾“省略”参数,因此
foo()
、foo(1)
或foo(1,2)
是有效的。如果您只想提供不是第一个参数,则必须使用指定参数名称的语法。返回:
p_one=, p_two=42, p_three=foo
返回:
p_one=1, p_two=42, p_three=foo
返回:
p_one=, p_two=42, p_three=bar