SQL ORDER BY

הפסוקית ORDER BY במשפטי SQL מציינת כי ברצוננו שהתוצאות המוחזרות ממשפט SQL תהיינה ממוינות. ברירת המחדל של פקודת ORDER BY תהיה לסידור הרשומות המוחזרות בסדר עולה. במידה ונרצה שהרשומות החוזרות ימוינו בסדר יורד נשתמש בפקודה DESC שהיא קיצור המילה - Descending, קרי, סדר יורד.

המבנה הכללי של משפט ORDER BY יהיה:

SELECT <רשימת עמודות> FROM <שם הטבלה> ORDER BY <שם עמודה> <ASC / DESC>;

על מנת להבין טוב יותר את השימוש ב - ORDER BY הבה נשתמש בטבלה הבאה ששמה בבסיס הנתונים יהיה Products:

Status Price Product_Name Product_ID
פעיל מוצר 1 123
פעיל 246 מוצר 2 124
לא פעיל 300 מוצר 3 125

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

SELECT * FROM Products ORDER BY Price;

משפט זה יחזיר לנו את כל הרשומות שבטבלה בסדר הבא: מוצר 2, מוצר 3, מוצר 1. יש לשים לב שלמרות שרצינו שהרשומות יחזרו על פי הסדר העולה בעמודה Price לא כתבנו זאת במפורש. זאת מפני שברירת המחדל של ORDER BY היא סדר עולה (Ascending). יחד עם זאת, אילו רצינו יכולנו להוסיף את מילת המפתח ASC בסוך משפט ה - SQL, אך כאמור התוצאות היו זהות.

משפטי ORDER BY יחד עם משפטי WHERE:


SELECT Product_Name FROM Products WHERE Status = 'פעיל' ORDER BY Price DESC;

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

התוצאה של משפט זה במקרה שלנו תהיה: {מוצר 1, מוצר 2}.

משפטי ORDER BY על פי מספר ערכים ובסדר משתנה:

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

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

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

SELECT Name FROM Products ORDER BY Price ASC, Product_ID DESC;

יש לשים לב שבין תנאי מיון אחד למשנהו שמנו פסיק. התוצאה שתוחזר לנו כתוצאה ממשפט ה - SQL שבדוגמה תהיה: {מוצר 3, מוצר 2, מוצר 1}.

סדר המיון במשפטי ORDER BY:

סדר המיון במשפטי ORDER BYקובע כיצד יתבצע המיון. המיון מתבצע קודם כל על פי העמודה הראשונה. אם בעמודת המיון הראשונה ישנם ערכים זהים אזי מתבצע מיון נוסף בין הערכים הזהים הללו על פי עמודת המיון השנייה וכן הלאה.



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