Subject Re: [firebird-support] Doubts about exists predicate
Author Tanmoy Ghoshal
Hi Set,

Thank you for reply.

I have more than 1500 constant values. Here IN not accept more than 1500, then
what is the best way to write SQL to get data in less time.

I need to write SQL which should not take much time to execute.

As a beginner, If possible Please help me.



Thanks once again.

Tanmoy.





________________________________
From: Svein Erling Tysvær <svein.erling.tysvaer@...>
To: "firebird-support@yahoogroups.com" <firebird-support@yahoogroups.com>
Sent: Tue, 16 November, 2010 3:03:35 PM
Subject: RE: [firebird-support] Doubts about exists predicate


IN is good when using constants, EXISTS when involving a subselect. I.e. I would
use


Select Field1, Field2 from Table1 where Field3 IN ('Value1', 'Value2',
'Value3');

whereas I would replace

Select t1.Field1, t1.Field2 from Table1 t1 where t1.Field3 IN (select t2.Field3
from Table2 T2);

with

Select t1.Field1, t1.Field2 from Table1 t1 where exists(select * from Table2 T2
where t1.Field3 = t2.Field3);

To be precise (normally it is not a practical issue, it is only relevant when
dealing with NULL), IN (<subselect>) can always be replaced by EXISTS, whereas
NOT IN (<subselect>) isn't always identical to NOT EXISTS.

HTH,
Set

-----Original Message-----
From: firebird-support@yahoogroups.com [mailto:firebird-support@yahoogroups.com]
On Behalf Of Tanmoy Ghoshal
Sent: 16. november 2010 09:58
To: firebird-support@yahoogroups.com
Subject: [firebird-support] Doubts about exists predicate

Hi All,

I am using Firebird 2.1.3. I have some doubt about
exists predicate, can we directly use (if yes, then how, pl need an
example) as follows:

Select Field1, Field2 from Table1 where Field3 IN ('Value1', 'Value2',
'Value3');

same
can we use Exists predicate in above sql instead of IN, provided values
will be given same, as it is given in above sql like 'Value1',
'Value2'.....

Second doubt there value limitation for IN predicate as 1500, is there any
limitation for Exists predicate?

I am beginner to sql, pl let me know.

Thanks In Advance.

Tanmoy





[Non-text portions of this message have been removed]