2010-12-01 3 views
0

ЕСЛИ я должен сравнить два курсоров и Retrun уникальные Vals, как я могу это сделатьcursor- как сравнить и выбрать уникальные записи

пример CURSOR c_stock_option IS Выберите EmpID, имя, ПЛА, isenrolled от сотрудника где isenrolled = 1

CURSOR c_espp_option IS Выберите EmpID, имя, ПЛА, isenrolled от сотрудника где isenrolled = 2

Теперь я хочу отклонить все рекурсии во вторых курсорах, которые находятся в курсоре 1, выбрать, как это сделать

ответ

0

Ummm ..... по определению все строки, где isenrolled = 2, не перекрываются с строками, где isenrolled = 1. Но я думаю, вы задаете более общий вопрос о том, как исключить строки из одного набора результатов, которые находятся в другом.

Если это так, то вы могли бы занять несколько различных подходов:

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) 

Какие вы выбираете, зависит от вашей ситуации , модель данных, индексирование и т. д.

Смежные вопросы