הבלוג של גרי רשף

03/09/2010

משפט Select עם Top & Distinct

Filed under: Uncategorized — תגיות: , , — גרי רשף @ 05:30

ניצור טבלה זמנית, ונכניס לתוכה את המספר 1 שלוש פעמים, את המספר 2 שלוש פעמים, את המספר 3 שלוש פעמים ואת המספר 4 שלוש פעמים; בסה"כ שנים עשר מספרים:

Create Table #T(I Int);

Go


Insert Into #T

Select    1

Union All

Select    1

Union All

Select    1

Union All

Select    2

Union All

Select    2

Union All

Select    2

Union All

Select    3

Union All

Select    3

Union All

Select    3

Union All

Select    4

Union All

Select    4

Union All

Select    4;

Go

איזה פלט תחזיר כל אחת מהשאילתות הבאות?

Select Top 3 Distinct I From #T;

Go


Select Distinct Top 3 I From #T;

Go

הראשונה מחזירה שגיאה למרות שציפיתי שמתוך ה-Distinct (כלומר- 1,2,3,4) היא תחזיר את שלושת הראשונים,

והשניה מחזירה את 1,2,3 למרות שציפיתי שתחזיר רק את 1 (כלומר- על ה-Top 3 שמחזיר את 1,1,1 יתבצע Distinct).

כדי לקבל את מה שציפיתי מהאופציה השניה יש לשלוף כך:

Select Distinct I From (Select Top 3 I From #T) T;

Go

מודעות פרסומת

להגיב »

עדיין אין תגובות.

RSS feed for comments on this post. TrackBack URI

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

בלוג בוורדפרס.קום.

%d בלוגרים אהבו את זה: