top of page

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

עודכן: 21 באוק׳ 2020


ree

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


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

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


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

ree

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

בצורה הבאה:

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

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


ree

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

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


ree

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


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

ree

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

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

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


ree

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

ree

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


ree

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

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


ree

בפוסט הבא אסביר על משתנים מסוג טבלה וכיצד להשתמש בהם.

תגובות


bottom of page