DCSIMG
Except - גרי רשף

Browse by Tags

All Tags » Except (RSS)
לאחר שקראתם את הכותרת- אתם יודעים מה אני הולך להראות. ניצור שתי טבלאות צנועות: Use tempdb; Go   Create Table Tbl1(I Int ); Go   Insert Into Tbl1 Select 1 I Union All Select 1 I Union All Select 2 I Union All Select 2 I; Go   Create Table Tbl2(I Int ); Go   Insert Into Tbl2 Select 1 I; Go   Select * From Tbl1; Select * From Tbl2; Go וכעת נבצע Except (כלומר- נחסיר מהראשונה את השניה): Select * From Tbl1 Except Select * From Tbl2; Go העובדה ש-1 בטבלה השניה קיזז פעמיים 1 בראשונה...
דרך מעניינת להסתכל על טבלאות היא כעל קבוצות של רשומות. נכון שהדימוי האינטואיטיבי הוא דווקא של רשימה מסודרת (טבלה..) אבל לסדר אין חשיבות והטבלה נשארת אותה טבלה ללא קשר לאופן המיון הלוגי או הפיזי של הרשומות (זו כנראה אחת הסיבות להתעקשותה של Microsoft לא לאפשר ביצוע Order By ב-View), ובין טבלאות ניתן לבצע פעולות חיתוך ואיחוד כפי שלמדנו במבוא לתורת הקבוצות.. לצורך ההמחשה ניצור שתי טבלאות בעלות מבנה זהה, ונכניס לתוכן נתונים - חלקם זהים וחלקם שונים: Use tempdb; Go   If Object_Id( 'Tbl1' )...
יש לנו טבלת ניהול, למשל- טבלת סוגי עובדים, ובה עובד ומנהל: Create Table T_SugeyOvdim(MisparSug Int Primary Key , ShemSug Varchar (50)); Go Insert Into T_SugeyOvdim Select 10, 'עובד' Union All Select 20, 'מנהל' ; Go יום אחד נוצר צורך להוסיף סוגים חדשים, למשל- פרילנסר ומנהל בכיר; ומכיוון שמדובר בטבלת ניהול- יוצרים סקריפט להוספת השורות החדשות, מוסיפים בשרת הפיתוח ובודקים שהכל רץ בסדר; מוסיפים בשרת הבדיקות ומבצעים בדיקות ברמת המערכת; ולבסוף מעלים לייצור. סקריפט ההוספה צריך להיות כתוב...
ההיכרות הראשונה שלי עם עולם בסיסי הנתונים הרלציוניים הייתה לפני כחמש עשרה שנה בקורס אקסס – באחת מגרסאותיו הראשונות. אם לפני הקורס חשבתי שאקסס זה אקסל משופר, הרי לאחר השיעור הראשון בו הראו לנו איך יוצרים טבלה, מכניסים לתוכה נתונים, ממינים ומפלטרים אותה- התחלתי לחשוש שמדובר באקסל נחות ומנוון.. רק לאחר שהראו לנו איך עושים Join בין טבלאות אמרתי בליבי "אההה.." ארוך שפירושו הוא "עכשיו אני מבין..". לזכר ימי התום האלו אני אנסה לרכז בפוסט אחד את כל הדרכים לשלוף מטבלאות תוך שהן מתייחסות...