# Πώς να χρησιμοποιήσετε τη συνάρτηση ORDER BY στη SQL

Η εντολή `ORDER BY` της SQL σάς επιτρέπει να ταξινομήσετε τα αποτελέσματα αναζήτησης ανάλογα με τις προσωπικές σας ανάγκες, είτε σε αύξουσα είτε σε φθίνουσα σειρά. Η ταξινόμηση των δεδομένων στον πίνακα προορισμού σε σειρές και στήλες μπορεί να κάνει τα αποτελέσματά σας πιο σαφή και ευανάγνωστα. Αυτό, με τη σειρά του, βελτιστοποιεί και επιταχύνει τις αναλύσεις δεδομένων και τα ερωτήματά σας σε σύνθετα σύνολα δεδομένων.

## Τι είναι το SQL `ORDER BY`;

Μπορείτε να χρησιμοποιήσετε την εντολή SQL `ORDER BY` για να ταξινομήσετε δεδομένα και αποτελέσματα από απλά ή σύνθετα σύνολα δεδομένων. Η εντολή αυτή σας επιτρέπει να καθορίσετε **τον τρόπο με τον οποίο τα δεδομένα θα ταξινομηθούν** στον πίνακα προορισμού. Επιπλέον, μπορείτε να ορίσετε αν τα δεδομένα θα ταξινομηθούν κατά αύξουσα ή φθίνουσα σειρά. Έτσι, `ORDER BY` συμβάλλει στην παροχή αποτελεσμάτων ερωτημάτων που είναι σαφή και ευανάγνωστα.

Από προεπιλογή, `ORDER BY` εμφανίζει τα αποτελέσματα σε αύξουσα σειρά, δηλαδή από το Α έως το Ω ή από τη μικρότερη προς τη μεγαλύτερη τιμή. Αν προτιμάτε τα αποτελέσματα σε φθίνουσα σειρά, μπορείτε να χρησιμοποιήσετε την προαιρετική λέξη-κλειδί `DESC`. Μπορείτε να ορίσετε μία ή περισσότερες στήλες προορισμού για τα αποτελέσματα.

Η SQL `ORDER BY` είναι σημαντική για την εκτέλεση **οργανωμένων και γρήγορων ερωτημάτων**. Χρησιμοποιείται συχνά σε συνδυασμό με τις εντολές SELECT, WHERE και άλλους τελεστές και συναρτήσεις της SQL, όπως η GROUP BY.

Tip Θέλετε να κατανοήσετε καλύτερα τη [γλώσσα SQL](https://www.ionos.com/el-gr/digitalguide/diakomistis/technognosia/ti-einai-to-sql/), αλλά δεν ξέρετε από πού να ξεκινήσετε; [Η εισαγωγή](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/eisagogi-stin-sql-me-paradeigmata/) μας [στη γλώσσα SQL με παραδείγματα](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/eisagogi-stin-sql-me-paradeigmata/) σας διευκολύνει να ξεκινήσετε την εκμάθηση αυτής της δημοφιλούς γλώσσας βάσεων δεδομένων.

## Ποια είναι η σύνταξη της SQL `ORDER BY`;

Η σύνταξη της SQL `ORDER BY` έχει την εξής μορφή:

```sql
SELECT  ColumnA, ColumnB, …  or *
FROM  Table
ORDER BY  ColumnA, ColumnB, …  (optional: ASC or DESC)
```

Note Αν εισαγάγετε μόνο μία στήλη μετά `ORDER BY`, θα λάβετε **μία στήλη με ταξινομημένα αποτελέσματα**. Αν εισαγάγετε περισσότερες από μία στήλες, τα αποτελέσματα θα ταξινομηθούν με βάση τη Στήλη Α. Αν η Στήλη Α περιέχει πανομοιότυπες καταχωρήσεις σε ορισμένες σειρές, αυτές οι σειρές θα ταξινομηθούν με βάση τη Στήλη Β.

Μπορείτε να επεκτείνετε αυτή τη σύνταξη με επιπλέον τελεστές και παραμέτρους. Μια ρήτρα `WHERE`, για παράδειγμα, μπορεί να χρησιμοποιηθεί για τον καθορισμό κριτηρίων που περιορίζουν τα αποτελέσματα της αναζήτησής σας. Η σύνταξη του `ORDER BY` σε συνδυασμό με `WHERE` έχει την εξής μορφή:

```sql
SELECT  ColumnA, ColumnB, …  or *
FROM  Table
WHERE  ColumnA  =  'SearchCondition'
ORDER BY  ColumnA, ColumnB, …  (optional: ASC or DESC)
```

Μπορείτε επίσης να χρησιμοποιήσετε τις ακόλουθες παραμέτρους:

- `SELECT`: Μπορείτε να χρησιμοποιήσετε τη συντακτική δομή SELECT για να καθορίσετε ποια δεδομένα θέλετε να αναλύσετε. Χρησιμοποιήστε τον αστερίσκο `*` για να ανακτήσετε ολόκληρο το σύνολο δεδομένων ή πληκτρολογήστε τα ονόματα των στηλών για να εργαστείτε με αυτές τις στήλες.
- `FROM`: Καθορίζει από ποιον πίνακα θέλετε να αναζητήσετε δεδομένα.
- `WHERE`: Το WHERE είναι μια προαιρετική ρήτρα για τον καθορισμό κριτηρίων αναζήτησης που θα περιορίσουν τα αποτελέσματά σας. Μέσα σε μια ρήτρα `WHERE` μπορείτε να χρησιμοποιήσετε τελεστές όπως `=`, LIKE ή [NOT](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/sql-not/).
- `ORDER BY`: Καθορίζει σε ποια στήλη θέλετε να ταξινομήσετε τα αποτελέσματά σας. Εάν δεν προσθέσετε `ASC` ή `DESC`, τα αποτελέσματα θα ταξινομηθούν από προεπιλογή σε αύξουσα σειρά.

Note Ανάλογα με τη βάση δεδομένων, `ORDER BY` ταξινομεί τις τιμές NULL αυτόματα ή σύμφωνα με την επιλεγμένη σειρά ταξινόμησης. Στις βάσεις δεδομένων SQLite, MySQL και SQL Server, οι τιμές NULL αντιμετωπίζονται ως οι χαμηλότερες τιμές. Αυτό σημαίνει ότι εμφανίζονται στην αρχή των αποτελεσμάτων κατά αύξουσα σειρά. Στις βάσεις δεδομένων Oracle και PostgreSQL, οι τιμές NULL αντιμετωπίζονται ως οι υψηλότερες τιμές. Επομένως, εμφανίζονται στο τέλος των αποτελεσμάτων κατά αύξουσα σειρά.

## Σε ποιες εφαρμογές μπορεί να χρησιμοποιηθεί το SQL `ORDER BY`;

Ακολουθούν μερικές πρακτικές εφαρμογές του SQL `ORDER BY`:

- Ταξινόμηση των πληροφοριών προϊόντων με βάση το όνομα, την κατηγορία ή την τιμή του προϊόντος
- Ταξινόμηση συναλλαγών με βάση το ποσό, την ημερομηνία ή το όνομα
- Ταξινόμηση παραγγελιών με βάση το ποσό ή τις αξιολογήσεις
- Ταξινόμηση υπαλλήλων με βάση το μισθό, τις συμβάσεις, την απόδοση ή το τμήμα
- Κατάλογος αποθεμάτων με βάση το ποσό ή το όνομα
- Ταξινόμηση αποστολών με βάση τον ταχυδρομικό κώδικα ή τον αριθμό παρακολούθησης
- Ταξινόμηση λιστών πελατών ανά περιοχή ή ηλικία

## Παραδείγματα SQL `ORDER BY`

Θα δούμε τώρα 3 παραδείγματα με το `ORDER BY`.

### Ταξινόμηση προϊόντων με βάση την τιμή

Σε αυτό το παράδειγμα, θα ταξινομήσουμε τα προϊόντα της κατηγορίας «Μαλλιά» σε αύξουσα σειρά με βάση την τιμή. Χρησιμοποιούμε `FROM` και `WHERE` για να καθορίσουμε ποια προϊόντα θέλουμε να ταξινομήσουμε. Με `ORDER BY` και `ASC`, καθορίζουμε ότι θέλουμε να τα ταξινομήσουμε σε αύξουσα σειρά με βάση την τιμή. Η σύνταξη έχει ως εξής:

```sql
SELECT  *
FROM  Products
WHERE  Category  = 'Hair'
ORDER BY  Price  ASC;
```

### Φιλτράρισμα πελατών

Ας υποθέσουμε ότι εργάζεστε σε έναν πίνακα με το όνομα «Πελάτες» και θέλετε να ταξινομήσετε όλους τους πελάτες από το Ηνωμένο Βασίλειο με βάση το όνομά τους. Θέλετε να τους ταξινομήσετε σε αντίστροφη αλφαβητική σειρά, από το Ζ στο Α, οπότε προσθέτετε `DESC` στην εντολή `ORDER BY`.

```sql
SELECT  *
FROM  Customers
WHERE  Country = 'UK'
ORDER BY  Name  DESC;
```

### Ταξινόμηση βάσει πολλαπλών κατηγοριών

Σε αυτό το παράδειγμα, θέλετε να ταξινομήσετε τα προϊόντα της κατηγορίας «Ηλεκτρονικά» με βάση την ποσότητα της παραγγελίας. Σε περίπτωση που οι ποσότητες των παραγγελιών είναι ίδιες, θέλετε να ταξινομήσετε τα προϊόντα με βάση τη χώρα προέλευσης της παραγγελίας.

```sql
SELECT  *
FROM  Products
WHERE  Category  =  'Electronics'
ORDER BY  OrderQuantity ASC,  Country  DESC;
```

## Υπάρχουν εναλλακτικές λύσεις για το SQL `ORDER BY`;

Δεν υπάρχουν εναλλακτικές λύσεις για `ORDER BY` στη SQL με την ίδια λειτουργία. Ωστόσο, η εντολή GROUP BY χρησιμοποιείται συχνά σε συνδυασμό με `ORDER BY`. `GROUP BY` μπορεί να χρησιμοποιηθεί για **την ομαδοποίηση εγγραφών βάσει κατηγοριών**, ενώ `ORDER BY` μπορεί επιπλέον να ταξινομήσει αυτές τις εγγραφές.

**Ένα παράδειγμα**: Ας υποθέσουμε ότι θέλετε να ομαδοποιήσετε τις ποσότητες παραγγελιών των πελατών ανά χώρα και στη συνέχεια να χρησιμοποιήσετε τη συνάρτηση συγκέντρωσης AVG για να τις ταξινομήσετε με βάση τη μέση ποσότητα παραγγελίας. Η σύνταξη για αυτό θα έχει ως εξής:

```sql
SELECT  Country, AVG(OrderQuantity)
FROM  Customers
WHERE  Category = 'Electronics'
GROUP BY  Country
ORDER BY  AVG(OrderQuantity) ASC;
```

Μπορείτε επίσης να χρησιμοποιήσετε μια ρήτρα HAVING για να φιλτράρετε τις ταξινομημένες εγγραφές με βάση κριτήρια και συνθήκες αναζήτησης. `LIMIT` μπορεί να χρησιμοποιηθεί για να περιορίσετε το σύνολο των αποτελεσμάτων σε έναν συγκεκριμένο αριθμό.


This is a markdown version of: [https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/sql-order-by/](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/sql-order-by/) for AI/LLM consumption.