Raymond O'Donnell wrote:
On 23/01/2009 11:16, Igor Katson wrote:
How do I write a function without complex logic, which will do:
a) If the input argument is NULL, then the corresponding select
statement will change from
column = arg
to
column IS NULL
You could build your statement dynamically as a string, then execute it
using EXECUTE:
http://www.postgresql.org/docs/8.3/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN
b) If the input argument is NULL, then the corresponding select
statement will be removed, so if it was not written.
Likewise - something like
if i_city_id is null then
... build statement...
... execute statement ...
end if;
HTH,
Ray.
Thanks, Ray, but I see now, that I didn't explain the exact problem
correctly. The one is, that this kind of functions (search ones) can
have tens of arguments, and the more the amount of arguments is, the
more combinations of IF ... THEN conditionals will be present to build
the logic. If I have a couple of them, this can be easily handled
through IF THEN, or dynamic statements, but what if I have tens of 'em?
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general