السلام عليكم
يوجد نوعان من Column Comparisons :
Pairwise comparison
Nonpairwise comparison
Pairwise comparison
Code
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
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