מדריך T-SQL: הצגה והדפסת משתנים



בפוסט הקודם של המדריך ראינו איך להגדיר משתנים ואיך לאתחל אותם בכמה צורות אבל עדיין לא עשינו בהם שימוש. בחלק הזה נראה כמה פעולות שאפשר לעשות עם משתנים לאחר שהוגדרו, ואיך ניתן להציג את הערכים שהם מכילים.


הצגת משתנים בעזרת SELECT

בואו ניקח שאילתה פשוטה לדוגמה:


השאילתא הזאת מחזירה לנו את השם הפרטי, שם המשפחה והשכר של עובד מספר 100:


אנחנו יכולים להשתמש באותה שאילתא כדי להכניס את הנתונים האלה לתוך 3 משתנים נפרדים בבת אחת

בצורה הבאה:

בשורות 1-3 מוגדרים 3 משתנים ובשורות 5-7 כל משתנה מקבל ערך מתוך עמודה בטבלת Employees. השאילתה כמעט זהה אבל אם תריצו את הקוד הזה לא תקבלו נתונים כמו בדוגמה הקודמת. הפכנו את השאילתה משאילתה שמציגה נתונים לשאילתה שמאתחלת אותם לתוך משתנים. בשורה 9 נשתמש שוב במילה SELECT, הפעם בשביל להציג אותם:

בצורת הכתיבה הזאת הפסיקים יצרו עמודה חדשה לכל משתנה וכך כל ערך יוצג בתא נפרד:


אם נרצה להציג את הערכים באותו התא ניתן לשרשר משתנים ממש כפי שהיינו משרשרים כל סט מחרוזות אחר. גם כאן חייבים להקפיד שכל הערכים יהיו מאותו הסוג (מחרוזת) אז כדי שלא נקבל שגיאה נבצע המרה של המשתנה המכיל את נתון השכר ונהפוך אותו למחרוזת:

והתוצאה המתקבלת בתא יחיד:


ניתן גם להשתמש במספר שאילתות ופקודת UNION ALL כדי להציג את הפרטים באופן אנכי:


התוצאה תיראה כך:

הצגת משתנים בעזרת PRINT

כשאנו מריצים שאילתות ב-Management Studio, אנחנו מקבלים בדרך כלל 2 טאבים – טאב ה-Results שמציג לנו את הנתונים המבוקשים בצורה טבלאית, וטאב ה-Messages שמציג לנו פידבק מהמערכת על הפעולה שכרגע התבצעה, למשל כמה שורות הושפעו, האם הפעולה הצליחה או הודעות שגיאה שונות. PRINT היא פקודת T-SQL שמאפשרת לנו להציג מידע כפלט בטאב ההודעות בנוסף לפלט שמתקבל מהמערכת. המידע ש"מודפס" לטאב ההודעות בלתי נראה לאפליקציות אחרות, לא ניתן לקלוט או לייצא אותו ואין לו שימוש פרקטי מלבד פידבק נקודתי בעת פיתוח קוד. ומשתמשים בו הרבה לצורכי לימוד כמובן.

גם כשמרכיבים משפט באמצעות PRINT יש צורך לאחד את סוגי המידע כדי שלא נקבל שגיאות המרה:



בניגוד לשימוש ב-SELECT, כאן לא נוכל להשתמש בפסיקים בין המשתנים השונים

אפשר להציג כל משתנה בעזרת PRINT נפרד. כל PRINT נוסף יוריד אותנו שורה.


את אותו אפקט ניתן להשיג ע"י הגדרת התו האסקי (10)CHAR שמייצג ירידת שורה.

כך ניתן לרווח את התוצאות בצורה כזאת:



© כל הזכויות שמורות לאלעד פלג הדרכות 2020