4/01/2013

Column Comparisons

السلام عليكم 

يوجد نوعان من Column Comparisons :
Pairwise comparison 
Nonpairwise comparison

Pairwise comparison

Code

SELECT EMPLOYEE_ID
     , MANAGER_ID
     , DEPARTMENT_ID
FROM   EMPLOYEES
WHERE (MANAGER_ID, DEPARTMENT_ID) IN (SELECT MANAGER_ID
                                           , DEPARTMENT_ID
                                      FROM   EMPLOYEES
                                      WHERE  EMPLOYEE_ID IN (199,174))
AND    EMPLOYEE_ID NOT IN (199,174);




المثال السابق هو عباره عن multiple-column subquery لانه يقوم بأسترجاع اكثر من عمود .. المقارنه فى المثال السابق بين عمودى manager_id and department_id على كل صف فى جدول الـ employees فى حاله ان employee_id يساوى 199 او 174 .
فى الاستعلام الاول اقوم بأسترجاع قيم كلا من employee_id , manager_id and department_id فى حاله كان employee_id لا يساوى 199 او 174 وهذه القيم اقوم بمقارنتها فى جدول الـ employees فى كل صف فى حاله المتطابقه يظهر القيم 

اجمالا من خلال المثال السابق اريد اظهار تفاصيل الموظفين الذين يعملون تحت ادراه المديرين 199, 174 ويعملون فى نفس ادارتهم
نتيجه الأستعلام :

EMPLOYEE_ID MANAGER_ID DEPARTMENT_ID
----------- ---------- -------------
        141        124            50 
        142        124            50 
        143        124            50 
        144        124            50 
        196        124            50 
        197        124            50 
        198        124            50 
        175        149            80 
        176        149            80 
        177        149            80 
        179        149            80 

 11 rows selected 


Nonpairwise comparison

Code

SELECT  EMPLOYEE_ID
      , MANAGER_ID
      , DEPARTMENT_ID
FROM    EMPLOYEES
WHERE   MANAGER_ID IN (SELECT MANAGER_ID
                       FROM   EMPLOYEES
                       WHERE EMPLOYEE_ID IN (174,199))
AND DEPARTMENT_ID IN
                      (SELECT DEPARTMENT_ID
                       FROM EMPLOYEES
                       WHERE EMPLOYEE_ID IN (174,199))
AND EMPLOYEE_ID NOT IN(174,199);


هذا المثال يسترجع بلضبط نفس قيم ونفس نتائج المثال السابق ولكن الأختلاف فى طريقه كتابه الكود ففى المثال الاول قمت بأستخدام الـ Pairwise comparison ومن خلالها استطعت ان اتحقق من اكثر من قيمه فى نفس الوقت ... فى المثال الثانى بأستخدام Nonpairwise comparison قمت بلتحقق من كل قيمه على حدى ولكن اجمالا تجد نفس النتيجه

الملخص :
ان Pairwise comparison   يمكنك من خلالها التحقق من  قيمه اكثر من عمود فى نفس الوقت 
و Nonpairwise comparison   يمكنك من خلالها التحقق من قيمه كل عمود على حدى



-->

No comments:

Post a Comment