פרק 2 - שליפה ותמרון נתונים
Order by - סדר לפי
עד כה, התמקדנו בעיקר בשליפת מידע ממסד הנתונים שלנו ולא בדקנו כיצד נוכל לתמרן אותו. אחת הדרכים הנפוצות ביותר לתמרון מידע היא לסדר אותו לפי א"ב או לפי סדר מספרי.
למטרה זו ב- SQL קיים אופרטור ORDER BY. באופן כללי דקדוק הפקודה נראה כך:
SELECT column_names
FROM table
WHERE where_clause [OPTIONAL]
ORDER BY column_name;
|
דוגמא:
נניח שיש לנו טבלה הבאה:
CD Table |
BAND_NAME |
ALBUM_NAME |
PUBLISHER |
COST |
Big Bad Voodoo Daddy |
Big Bad Voodoo Daddy |
BMI |
12.99 |
Levay Smith |
One Hour Mama |
Fat Note |
13.99 |
Louis Prima |
Capitol Collector's Series |
Capitol |
9.99 |
Indigo Swing |
Indigo Swing |
Wet and placket |
13.99 |
Louis Jordan |
Rock and Roll |
Mercury |
12.99 |
Louis Jordan |
Best Of |
Capitol |
10.99 |
ונרצה לקבל רשימה של אומנים מסודרת לפי א"ב:
SELECT BAND_NAME, COST
FROM CD
ORDER BY BAND_NAME;
|
נקבל את התוצאה הבאה:
BAND_NAME COST
-------------------------------
Big Bad Voodoo Daddy 12.99
Indigo Swing 13.99
Levay Smith 13.99
Louis Jordan 12.99
Louis Jordan 10.99
Louis Prima 9.99
-------------------------------
|
שים לב, שכאשר מגדירים פסוקית ORDER BY אפשר לציין מספר עמודה במקום שם עמודה. לפיכך, הפקודה הבאה תהיה זהה לקודמתה:
SELECT BAND_NAME, COST
FROM CD
ORDER BY 1;
|
כמובן שאפשר לסדר לפי כמה עמודות, בתנאי שמציינים שם עמודה שעל פיה נמיין תחילה, ואחריה מציינים עמודות משניות שעל פיהן ממינים ערכים זהים בעמודה ההתחלתית. למשל, אם נמיין לפי עמודת COST וגם לפי עמודת BAND_NAME את האלבומים של לואיס ג'ורדן, אזי הם יהיו ממוינים גם לפי השם וגם לפי המחיר:
SELECT BAND_NAME, COST
FROM CD
WHERE BAND_NAME LIKE 'Louis%'
ORDER BY BAND_NAME, COST;
|
נקבל את התשובה הבאה, שבה האלבום שמחירו 10.99 מופיע ראשון.
BAND_NAME COST
-------------------------------
Louis Jordan 10.99
Louis Jordan 12.99
Louis Prima 9.99
-------------------------------
|
השימוש במילת מפתח DESK יהפוך את סדר המיון. לכן, כדי לקבל דיווח על מחירים הממוינים בסדר יורד נשתמש בקטע קוד הבא:
SELECT BAND_NAME, COST
FROM CD
ORDER BY COST DESC;
|
נקבל:
BAND_NAME COST
-------------------------------
Levay Smith 13.99
Indigo Swing 13.99
Big Bad Voodoo Daddy 12.99
Louis Jordan 12.99
Louis Jordan 10.99
Louis Prima 9.99
-------------------------------
|
Null
תוכן עניינים
ביצוע חישובים מתמטיים
פרק 1 ->
פרק 2 ->
פרק 3 ->
פרק 4 ->
פרק 5 ->
|