Union & Union All

18/02/2013

2 תגובות

מה שטרד היום את מנוחתי לא היה האיום האיראני, לא האזהרות מפני רעידת אדמה ממשמשת ובאה, ואף לא הגרעון בתקציב; אלא מה קורה כשמשלבים באותה שליפה פקודות Union (שמבצעת Distinct) ו-Union All..
הנתונים:

Create Table #T(N Int);

Go

 

Insert Into #T Select 1;

Insert Into #T Select 2;

Insert Into #T Select 2;

Insert Into #T Select 3;

Insert Into #T Select 3;

Insert Into #T Select 3;

Go

 

Select * From #T;

clip_image002

והשליפות לבדיקה:

Select * From #T

Union  All

Select * From #T

Union

Select * From #T;

 

Select * From #T

Union

Select * From #T

Union  All

Select * From #T;

clip_image004

כלומר- במקרה הראשון התבצע בשלב הראשון Union All ללא Distinct, אך לאחר מכן Union כולל Distinct והפלט הצטמצם לשלוש שורות;

ובמקרה השני התבצע בשלב הראשון Union הכולל Distinct, ולשלוש השורות שהתקבלו התווספו כל השש בשל ה-Union All בהמשך.

כעת אתפנה לטפל באיום האיראני ואשוב לדווח כשאשלים את משימתי (נתנז ובושהר- אני בדרך!).

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

2 תגובות

  1. פלג19/02/2013 ב 02:32

    למה התוצאה מפתיעה?לוגית זה נראה הגיוני לגמרי.

    הגב
  2. איתי19/02/2013 ב 03:34

    פוסט חשוב, קצר וקולע.
    גם אם זה נראה הגיוני, תודה על הסדר בדברים!

    הגב