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

11/01/2011

הצגת סטים בלתי תלויים במבנה טבלאי מאוחד

Filed under: Uncategorized — תגיות: , — גרי רשף @ 18:43

הכותרת המעט מסורבלת של הפוסט מתייחסת לשאלה ששאל הרב דוט נט:

כיצד מאחדים את הסט

1

2

3

4

עם הסט

A

B

C

D

לסט מאוחד

1,A

2,B

3,C

4,D

והתשובה הנכונה כעקרון שהוא הציג היא למספר כל סט באמצעות Row_Number ולבצע Join בינהם.

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

נניח שאנחנו מעוניינים להציג סט בו בעמודה אחת יופיעו הטבלאות, בעמודה השניה ה-Views, בשלישית הפרוצדורות וברביעית הטריגרים; ולכל רשימה אורך אחר?

נשתמש ב-Full Outer join בין הסטים, והתנאי יהיה התאמה בין המספר בטבלה ל-Coalesce של המספרים בטבלאות הקודמות:

Select  *

From    (Select Row_Number() Over(Order By name) Mispar,

        name

        From sys.tables) T

Full Join (Select Row_Number() Over(Order By name) Mispar,

        name

        From sys.views) V

        On T.Mispar=V.Mispar

Full Join (Select Row_Number() Over(Order By name) Mispar,

        name

        From sys.Procedures) P

        On Coalesce(T.Mispar,V.Mispar)=P.Mispar

Full Join (Select Row_Number() Over(Order By name) Mispar,

        name

        From sys.triggers) Tr

        On Coalesce(T.Mispar,V.Mispar,P.Mispar)=Tr.Mispar;

Go

clip_image002

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

להגיב »

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

RSS feed for comments on this post. TrackBack URI

להשאיר תגובה

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

הלוגו של WordPress.com

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

תמונת Twitter

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

תמונת Facebook

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

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

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

מתחבר ל-%s

יצירה של אתר חינמי או בלוג ב־WordPress.com.

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