2010-12-01 4 views
0

si je dois comparer deux curseurs et retrun vals uniques comment puis-je faire celaCursor- comment comparer et sélectionner des enregistrements uniques

exemple CURSEUR c_stock_option EST Sélectionnez empid, nom, numéro de sécurité sociale, isenrolled de l'employé où isenrolled = 1

CURSEUR c_espp_option EST Sélectionnez empid, nom, numéro de sécurité sociale, isenrolled de l'employé où isenrolled = 2

maintenant, je veux pour rejeter tous les recs dans les deuxièmes curseurs qui sont dans le curseur 1 sélectionnez, comment puis-je faire

Répondre

0

Ummm ..... par définition, toutes les lignes où isenrolled = 2 ne chevauchent pas les rangées où isenrolled = 1. Mais je pense que vous posez une question plus générale sur la façon d'exclure les lignes d'un ensemble de résultats qui sont dans un autre.

Si tel est le cas, vous pouvez prendre quelques approches différentes:

1)

CURSOR c_stock_option IS 
    Select empid, name, ssn, isenrolled from employee where isenrolled=1 
    MINUS 
    Select empid, name, ssn, isenrolled from employee where isenrolled=2 

2)

CURSOR c_stock_option IS 
    Select empid, name, ssn, isenrolled from employee 
    where isenrolled=1 
    and empid not in (
     Select empid, name, ssn, isenrolled from employee where isenrolled=2) 

3)

CURSOR c_stock_option IS 
    Select empid, name, ssn, isenrolled from employee e 
    where isenrolled=1 
    and not exists(
     Select 1 from employee where e.empid = employee.empid and isenrolled=2) 

qui vous choisissez dépend de votre situa tion, modèle de données, indexation, etc.

Questions connexes