הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:
ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il
הרבגה פעמים אנו מקבלים תאריכים בפורמט כל שהוא עם hh:mm:dd ואנו צריכים להוריד את hh:mm:ss ולהשאיר רק את dd:mm:yyyy. דוגמא קלאסית למצב כזה היא הכנסת תאריכים לFact Table, כי הרי אם נשאיר גם את hh:mm:dd לא נוכל לחבר את הfact לטבלת זמן חודשית.
באורקל, הדרך לעשות זאת פשוטה מאד:
( trunc (full date
בSQL Server ישנם מספר דרכים לבצע זאת, בחרנו דרך אחת:
(dateadd(day, datediff(day, 0, {full date}), 0
תודה לכריש על עזרתו
אורדינליות של נתונים, מאת: תמיר בר-נצר
אורדינליות, פירושה יכולת בסיס הנתונים לקבוע יחס של גדלים בין ביטויים בבסיס הנתונים. נושא זה הוא בעל חשיבות גבוהה ביותר משתי סיבות:
בהרצת שאילתות אנחנו משתמשים לרוב באופרטורים המעידים על יחס של גדלים בין ביטויים. לצורך עניין זה ישנם שלושה סוגים של אופרטורים: greater than, less than,between.
גם כאשר אנחנו נזקקים למיון נתונים, כגון באמצעות פקודת order by היכולת הנכונה לקביעת סדר הביטוים היא קריטית.
סקריפט convert ל sql server (פועל גם על גירסת 2000 וגם על 2005)
לעתים רבות, אנו צריכים להעביר שדה תאריכי לצורת טקסט. לצורך זה בדיוק ישנה פונקציה convert שעושה פעולה זאת. פונקציה זאת מקבלת מספר כפרמטר הקובע את הפורמט המדוייק של המחרוזת. כיצד נדע איזה מספר נותן איזה מחרוזת? בדיוק לצורך זה, ישנו הסקריפט הבא אשר מציג לכל מספר, דוגמא לפורמט.
תודה לכריש על תרומת הסקריפט.
קצרצר:
האם ידעתם שגם בSQL SERVER וגם בOracle מגרסאות מסוימות, ניתן להשתמש בפונקציה המאד שימושית coalesce.
פונקציה זאת, מקבלת מספר שדות ומחזירה את הראשון שאינו NULL. לדוגמא, אם יש לנו טבלה המכילה 3 שדות אזור, שכל אחד מהם מציג אזור אחר, אבל דירוג שלהם יתן למעשה אזור המציין לקוח. למשל אם מצוין אזור מגורים , אז ניקח אותו, אם לא אז ניקח אזור מקום עבודה, אם אזור זה לא קיים ניקח אזור מנהל מכירות ואם אזור זה גם זה לא קיים ,נציין שהאזור לא ידוע.
התחביר : ('coalesce(region_user, region_work, region_sales,'unknown
תחביר זה מחליף קינון של case when והוא למעשה הרבה יותר אלגנטי וקל לקריאה.
Exist הוא חלק מתחביר הSQL הסטנדרטי, אך עדין ישנם רבים שאינם משתמשים בו וזאת למרות היתרונות הרבים הגלומים בו.
עמוד 2 מתוך 2