Hi Gurus,

 

I have a problem using NOT IN clause in Oracle. However using NOT EXISTS, gives me the right output. Are there any known limitations.

 

This query selects from the master records wherein child records are not active.

 

select * from ct_software_release csr where

  csr.class         = 'NS'

  AND    csr.active_flag   = 'Y'

  AND    csr.os_id_pk not IN

  (SELECT crs.os_id_fk1 FROM CT_ROADMAP_SOFTWARE crs

        WHERE crs.active_flag  = 'Y');

 

The sub-query in the above case gives 1800 rows. The above query fails to give any rows.

                                                                                 

select * from ct_software_release csr where

  csr.class         = 'NS'

  AND    csr.active_flag   = 'Y'

  AND    NOT EXISTS

        (SELECT 1 FROM CT_ROADMAP_SOFTWARE crs

        WHERE crs.os_id_fk1 = csr.os_id_pk

                                AND crs.active_flag  = 'Y');                                                           

 

This above query works fine.

 

 

 

Thanks


Siddharth Haldankar

Zensar Technologies Ltd.

Cisco Systems Inc.

(Offshore Development Center)

#  : 091 020 4128394

[EMAIL PROTECTED]

[EMAIL PROTECTED]

 

 

Reply via email to