שילוב של האופרטורים In ו-Like

יום שלישי, ספטמבר 27, 2016

נניח שרוצים למצוא בטבלה את כל השורות בהן עמודה מסויימת שווה ל-.. או ל.. או ל.. וכו’ (רשימה ארוכה של ערכים אפשריים). במקום לכתוב משהו כמו- Select *From MyTblWhere MyCol='..' Or MyCol='..' Or MyCol='..' .. נכתוב משהו אלגנטי וקריא יותר בסגנון של- Select *From MyTblWhere MyCol In ('..', '..', '..', .. ..); מה נעשה אם נרצה לכתוב משהו כמו- Select *From MyTblWhere MyCol Like '%..%' Or Like MyCol='%..%' Or MyCol Like '%..%' .. הרי לא נוכל לשלב In ו-Like ביחד.מה עושים?פתרון פשוט אין,...
אין תגובות

חיתוך בין רשימות בעזרת הפונקצייה String_Split

יום שלישי, מרץ 29, 2016

הפונקצייה החדשה בגרסת 2016 יכולה להוות מקור לשימושים מעניינים. נכון שגם בעבר יכולנו ליצור user defined function בעזרת TSQL או בעזרת CLR, אלא שהחוכמה אינה לומר “מצאתי פתרון בעזרת פונקציית CLR שעושה את העבודה” אלא “מצאתי פתרון בעזרת מה שיש”. כעת “מה שיש” כולל גם את String_Split. אלו החוקים! (שלי לפחות..) הדוגמה שלהלן מעט מלאכותית, אבל יכולה להיות שימושית בנסיבות מסויימות, וזה תנאי מספיק לכתיבת פוסט.נתונה טבלת עובדים/תלמידים ולכל אחד מצויינות השפות בהן הוא שולט: If Object_ID('tempdb..#T','U') Is Not Null Drop Table #T; Create Table #T(Name NVarchar(10), ...
אין תגובות

פיצול מחרוזת (Split)

יום שלישי, מאי 18, 2010

פיצול מחרוזת של ערכים המופרדים בפסיקים לסט- זה אתגר שיכול לצוץ כשעובדים עם מידע המגיע בקבצי טקסט, או אולי כשרוצים להעביר מערך שנוצר בשפת תכנות כלשהי לתוך טבלה ב-SQL Server: יהיה מאוד לא יעיל לעבור בלולאה על המערך וכל ערך להכניס בנפרד לטבלה, ובמקום זה עדיף לשרשר את כולם למחרוזת אחת, להעביר ל-SQL Server ולתת לו לפצל אותה ולקלוט את הערכים. להלן מספר "הצעות הגשה", כלומר- מספר פתרונות אפשריים. קודם כל ניצור מחרוזת מספיק ארוכה שיהיה מה לפצל. להלן סקריפט קצר שמשרשר 10,000 ערכים אקראיים ושומר אותם בטבלה זמנית בת שורה אחת (שוב- בשלב זה יש לנו מחרוזת אחת אותה יש לפצל...
אין תגובות