Subject | AW: [firebird-support] iif and coalesce |
---|---|
Author | checkmail |
Post date | 2014-01-14T11:18:10Z |
Thanks J
Von: firebird-support@yahoogroups.com [mailto:firebird-support@yahoogroups.com] Im Auftrag von Tim Ward
Gesendet: Dienstag, 14. Januar 2014 10:37
An: firebird-support@yahoogroups.com
Betreff: Re: [firebird-support] iif and coalesce
There is an answer to this sort of thing because I had some code that used to do something like it.
However the resulting performance was pretty awful. I ended up generating different SQL for the two cases and running the result with EXECUTE STATEMENT.
On 14/01/2014 09:33, checkmail wrote:
Hello,
I would like to use dynamic conditions without an statement like:
Condition customer can be 0 (all costomers) or inherits a number of a customer
This doesn’t work: select * from table where iif(:input_customer_id <> 0;’customer_id = ‘ || :input_customer_id,’’)
I can set the input_customer_id to null when its value = 0, perhaps can I realize this with coalesce?
Where customer_id = coalesce(:input_customer_id;’…’) But I can’t set = and > 0 at the same time or = coalesce(..) and not null.
How can I finish my plan? Also I don’t like to set some if-statements… if input = 0 etc., there many inputs.
Thank you.
Best regards.
Olaf
--Tim Ward