السلام عليكم
يوجد نوعان من 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