היכן הפסיק ה-n-י? (מציאת מופע של תת מחרוזת): גרסת ה-String_Split

יום חמישי, אפריל 7, 2016

לפני למעלה מ-6 שנים, בראשית דרכי כבלוגר, פרסמתי את הפוסט היכן הפסיק ה-n-י? (מציאת מופע של תת מחרוזת):נתונה טבלה ובה עמודת Subjects עם מקצועות שונים שכל סטודנט לומד - Create Table T_Students (Name VarChar(50), Subjects VarChar(Max));GoInsert Into T_StudentsValues ('Ana','Geography,Literature'), ('Beni','Chemistry,Economics,History,Sociology'), ('Carmel',''), ('Dana','Literature,Economics,Philosophy,Sociology'), ('Eli','Zoology,Economics,Geography,History,Science'), ('Felicia','Medicine');Go ויש לשלוף את המקצוע הרביעי (אם יש..) של כל סטודנט.הפתרון שאז מצאתי, בלוגר צעיר ונרגש שחרד...

Paging לפי קבוצות

יום חמישי, אפריל 19, 2012

פוסט זה עוסק בשליפה של שורות X-Y מקבוצות שונות בטבלה (למשל- מכירות 5-8 לפי הסכום של כל אחד מהמוכרים בארגון). עסקתי מספר פעמים בעבר בנושא ה-Paging, בעיקר בעקבות הכלי היעודי לנושא שהוצג בגרסת 2012, והפעם מדובר בהרחבה והכללה של הנושא: במקום שורות 5-8 מטבלת המכירות, נרצה להציג את שורות 5-8 של כל אחד ואחד מהמוכרים בטבלת המכירות. ניתן לראות את זה גם כהכללה של בעיית ה-Top למספר קבוצות: בעבר הראיתי כיצד להציג את X השורות הראשונות של כל אחת מהקבוצות, וכעת נראה את X-Y השורות החל משורה X וכלה בשורה Y (נו...
תגיות: , , ,
אין תגובות

Paging ללא הכלים של SQL 2012

יום שלישי, מרץ 20, 2012

גרסת 2012 הביאה עמה את היכולת לבצע Paging ביעילות, אך מה יעשו אלו שאינם מתכוונים לשדרג לגרסה החדשה בתקופה הקרובה? המונח Paging מתייחס ליכולת לשלוף טווח של שורות לאו דווקא מתחילת הטבלה, כמקובל בחיפושים כדוגמת Google בהם מוצגות 50 תוצאות (נניח) ואנחנו יכולים לדפדף ל-50 התוצאות הבאות, ומשמעות הדבר שהמערכת שולפת את השורות 51-100. בגרסת 2012 זה מתבצע בעזרת הפקודה שמבצעת כמתבקש Scan של 100 השורות הראשונות, ומתוכן היא בוחרת את 50 השורות "השניות". כיצד ניתן לעשות זאת בכלים הותיקים והמוכרים? ניצן להציע...
תגיות: , , ,
3 תגובות

שליפה אקראית של שורות מטבלה בגרסת 2012

יום שישי, פברואר 24, 2012

לפני כשבועיים כתבתי פוסט לגבי שליפה אקראית של שורות מטבלה, ולמרבה הצער היו שתי אפשרויות שלכל אחת חסרונות משלה: 1. שימוש במיון בעזרת New_ID שמחזיר את התוצאה המבוקשת אבל כרוך במיון של טבלה שעלולה להיות גדולה מאוד. 2. שימוש בכלים מובנים של SQL Server ש”עולים” פחות אבל מחזירים מספר שורות שלא ניתן לצפות מראש במדוייק. גרסת 2012 שעומדת להשתחרר ב-07/03/2012 כוללת את אופציית ה-Paging שיכולה לסייע לנו במקרה זה: נשלוף 20 שורות (או כל מספר אחר) החל מנקודה אקראית בטבלה. המחיר יהיה פניה לטבלת המערכת sys.sysindexes כדי לברר כמה שורות...
אין תגובות