עוד דרך זה לעשות שימוש בטבלת מספרים
קיימת במסד הנתונים מובנית טבלה עם מספרים בטבלאות המערכת (אבל אני לא זוכר עד איזה מספר היא מגיעה ולכן אני מכין לי תמיד במסד הנתונים לתחזוקה טבלת מספרים פשוטה) JOIN של טבלת המספרים הפשוטה המאונדקסת לעבודה מהירה וללא נתונים מיותרים עם הטבלה שלך יכול אולי להביא תוצאות בצורה יותר טובה (לא בדקתי אז יכול להיות שגם זה יהיה פחות טוב
אבל אני צופה שזה יהיה יותר טוב או זהה) פשוט מבצעים select N.Num from NumberTable N left join YourTable T on N.num = T.num where T.num Is Null עתה רק נשאר להוסיך תנאי של בחירה של מספרים מטבלת המספרים רק בין 1 לבין המספר האחרון בטבלה שלך למשל * אם הטבלה מאונדקסת ניתן לקבל את הנתון בלי משאבים כמעט בשאילתה פנימית ואם מדובר בשדה IDENTITY אפשר לעשות שימוש במשתנה @@IDENTITY ויש עוד דרכים בהתאם לאפיון מסד הנתונים שלך. * אני לא ליד מחשב עם SQL כרגע ואין לי להיכנס ב RDP אז כתבתי את הדברים מהראש ואם מישהו רוצה לבדוק מה עדיף הוא מוזמן
בכל מקרה בניגוד לשאילתה של גרי שרק מוצאת את החורים ואז צריך לבצע תהליך נוסף למשל במרה שהחור הוא של יותר ממספר אחד הרי ששאילתה זו תיתן תוצאה מדוייקת של מה שמבוקש ז"א כל המספרים שחסרים בטבלה (עתה נשאר לבדוק מה מיטבי יותר) ** הגיע הזמן שבוחנים יבינו עד כמה המבחנים התיאורטיים אבסורדיים לפעמים... אבל זה כבר דיון אחר