آشنایی با INTERSECT و EXCEPT

معمولا برای مقایسه رکوردهای دو جدول از کوئری‌های پیچیده استفاده می‌شود. دو دستور INTERSECT و EXCEPT نتایج مقایسه رکوردهای دو کوئری را بدون نمایش رکوردهای تکراری نمایش می‌دهد.

EXCEPT رکوردهایی که در کوئری اول (سمت چپ) وجود دارد و در کوئری دوم (سمت راست) وجود ندارد را نمایش می‌دهد.به زبان ساده‌تر، رکوردهایی که در اولی هست و در دومی نیست.

INTERSECT رکوردهایی که در هر دو کوئری مشترک هستند را نمایش می‌دهد.

به دو کوئری زیر توجه کنید  

 

 

 

 

USE AdventureWorks;

GO

SELECT ProductID

FROM Production.Product

INTERSECT

SELECT ProductID

FROM Production.WorkOrder ;

–Result: 238 Rows (products that have work orders)

 

 

در دو جدول  Product و WorkOrder تعداد ۲۳۸ رکورد وجود دارد که ProductID آن‌ها مشترک است.  

 

 

 

 

 

USE AdventureWorks;

GO

SELECT ProductID

FROM Production.Product

EXCEPT

SELECT ProductID

FROM Production.WorkOrder ;

–Result: 266 Rows (products without work orders)

 

 

تعداد ۲۶۶ رکورد وجود دارد که ProductID آن‌ها در جدول Product (اولی) وجود دارد و در جدول WorkOrder (دومی) وجود ندارد. 

 

جهت دریافت و نصب بانک اطلاعاتی AdventureWorks  به اینجا مراجعه کنید.

منبع:

 http://msdn.microsoft.com/en-us/library/ms188055(v=sql.100).aspx

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *