SQL DISTINCT

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

המבנה הכללי של כל משפט DISTINCT יהיה:

SELECT DISTINCT <רשימת עמודות> FROM <שם הטבלה>;

על מנת להמחיש טוב יותר את תפקידו של ה - DISTINCT בתוך משפט SELECT הבה נשתמש בטבלה הבאה ששמה בבסיס הנתונים יהיה Products:

Status Price Name Product_ID
לא פעיל 100 מוצר 1 123
פעיל 200 מוצר 2 124
פעיל 200 מוצר 3 125

נניח שברצוננו לשלוף מטבלת המוצרים שלמעלה את כל המחירים. הקוד שלנו במקרה זה ייראה כך:

SELECT DISTINCT Price FROM PRODUCTS;

הנתונים שיחזרו אלינו כתוצאה מקוד זה יהיו הנתונים שיחזרו אלינו כתוצאה מקוד זה יהיו: 100 ו - 200. אילו היינו משמיטים את ה - DISTINCT אזי הנתונים שהיו חוזרים אלינו היו: 100, 200, 200. פקודת ה - DISTINCT לא החזירה רשומת נתונים אחת משום שאילו הייתה עושה זאת הייתה יוצרת כפילות שאותה ביקשנו למנוע.

DISTINCT על יותר מעמודה אחת

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

SELECT DISTINCT Price, Status FROMs Products;

הנתונים שיחזרו אלינו מטבלת המוצרים שלמעלה במקרה זה יהיו:
(100, לא פעיל), (200, פעיל).
אילו היינו משמיטים את ה - DISTINCT ממשפט ה - SQL שלנו היינו מקבלים:
(100, לא פעיל), (200, פעיל), (200, פעיל).


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש