Δευτερεύοντα ερωτήματα SQL

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο προέρχεται από μηχανική μετάφραση, δείτε την αποποίηση ευθυνών. Θα βρείτε την αγγλική έκδοση του παρόντος άρθρου εδώ για αναφορά.

Ένα δευτερεύον ερώτημα είναι μια ένθετη πρόταση SELECT μέσα σε μια πρόταση SELECT, SELECT...INTO, INSERT...INTO, DELETE ή UPDATE ή μέσα σε ένα άλλο δευτερεύον ερώτημα.

Σύνταξη

Μπορείτε να χρησιμοποιήσετε τρεις μορφές σύνταξης για να δημιουργήσετε ένα δευτερεύον ερώτημα:

σύγκριση [ANY | ALL | SOME] (πρόταση_sql)

παράσταση [NOT] IN (πρόταση_sql)

[NOT] EXISTS (πρόταση_sql)

Ένα δευτερεύον ερώτημα αποτελείται από τα εξής τμήματα:

Τμήμα

Περιγραφή

σύγκριση

Μια παράσταση και ένας τελεστής σύγκρισης που συγκρίνει την παράσταση με τα αποτελέσματα του δευτερεύοντος ερωτήματος.

παράσταση

Μια παράσταση για την οποία γίνεται αναζήτηση στο σύνολο των αποτελεσμάτων του δευτερεύοντος ερωτήματος.

sql_πρόταση

Μια πρόταση SELECT που ακολουθεί την ίδια μορφή και τους ίδιους κανόνες με όλες τις άλλες προτάσεις SELECT. Πρέπει να περικλείεται σε παρενθέσεις.


Σχόλια

Μπορείτε να χρησιμοποιήσετε ένα δευτερεύον ερώτημα αντί μιας παραστάσεως στη λίστα πεδίων μιας πρότασης SELECT ή σε έναν όρο WHERE ή HAVING. Σε ένα δευτερεύον ερώτημα, χρησιμοποιείτε μια πρόταση SELECT που παρέχει ένα σύνολο από μία ή περισσότερες τιμές που θα υπολογιστούν στην παράσταση του όρου WHERE ή HAVING.

Χρησιμοποιήστε τα κατηγορήματα ANY ή SOME, τα οποία είναι συνώνυμα, για να ανακτήσετε εγγραφές στο κύριο ερώτημα που ικανοποιούν τη σύγκριση μεταξύ των εγγραφών που ανακτώνται στο δευτερεύον ερώτημα. Το ακόλουθο παράδειγμα επιστρέφει όλα τα προϊόντα των οποίων η τιμή μονάδας είναι μεγαλύτερη από την τιμή οποιουδήποτε προϊόντος πωλείται με έκπτωση 25% ή μεγαλύτερη:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

Χρησιμοποιήστε το κατηγόρημα ALL για να ανακτήσετε μόνο εκείνες τις εγγραφές στο κύριο ερώτημα που ικανοποιούν τη σύγκριση με όλες τις εγγραφές που ανακτώνται στο δευτερεύον ερώτημα. Εάν αλλάξατε τα κατηγορήματα ANY ή ALL στο προηγούμενο παράδειγμα, το ερώτημα θα επέστρεφε μόνο εκείνα τα προϊόντα των οποίων η τιμή μονάδας είναι μεγαλύτερη από την τιμή όσων προϊόντων πωλούνται με έκπτωση 25% ή μεγαλύτερη. Αυτό είναι πιο περιοριστικό.

Χρησιμοποιήστε το κατηγόρημα IN για να ανακτήσετε μόνο τις εγγραφές στο κύριο ερώτημα για τις οποίες κάποια εγγραφή σε ένα δευτερεύον ερώτημα περιέχει μια ίση τιμή. Το παρακάτω παράδειγμα επιστρέφει όλα τα προϊόντα μ έκπτωση 25% ή μεγαλύτερη:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

Αντιστοίχως, μπορείτε να χρησιμοποιήστε το κατηγόρημα NOT IN για να ανακτήσετε μόνο τις εγγραφές στο κύριο ερώτημα για τις οποίες καμία εγγραφή σε ένα δευτερεύον ερώτημα δεν περιέχει μια ίση τιμή.

Χρησιμοποιήστε το κατηγόρημα EXISTS (με την προαιρετική δεσμευμένη λέξη NOT) σε συγκρίσεις τύπου ψευδές/αληθές για να καθορίσετε αν το δευτερεύον ερώτημα επιστρέφει εγγραφές.

Μπορείτε επίσης να χρησιμοποιήσετε ψευδώνυμα όνομα πίνακα σε ένα δευτερεύον ερώτημα για να ανατρέξετε στις πινάκων που αναφέρονται σε έναν όρο FROM εκτός του δευτερεύοντος ερωτήματος. Το παρακάτω παράδειγμα επιστρέφει τα ονόματα των υπαλλήλων των οποίων μισθούς είναι ίση ή μεγαλύτερη από τον μέσο μισθό όλων των υπαλλήλων με τον ίδιο τίτλο εργασίας. Ο πίνακας υπάλληλοι ανατίθεται το ψευδώνυμο "Τ1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

Στο προηγούμενο παράδειγμα η δεσμευμένη λέξη AS είναι προαιρετική.

Ορισμένα δευτερεύοντα ερωτήματα επιτρέπονται σε ερωτήματα διασταύρωσης — συγκεκριμένα, ως κατηγορήματα (εκείνα στον όρο WHERE). Δευτερεύοντα ερωτήματα ως αποτελέσματα (εκείνα στη λίστα SELECT) δεν επιτρέπονται σε ερωτήματα διασταύρωσης.



ΣΗΜΕΙΩΣΗ : Αποποίηση ευθυνών αυτόματης μετάφρασης: Αυτό το άρθρο έχει μεταφραστεί από ένα σύστημα υπολογιστή χωρίς ανθρώπινη παρέμβαση. Η Microsoft προσφέρει αυτές τις αυτόματες μεταφράσεις για να βοηθά τους μη αγγλόφωνους χρήστες να απολαμβάνουν περιεχόμενο σχετικά με προϊόντα, υπηρεσίες και τεχνολογίες της Microsoft. Το άρθρο προέρχεται από μηχανική μετάφραση, συνεπώς ενδέχεται να περιέχει λάθη λεξιλογίου, σύνταξης ή γραμματικής.

Αναπτύξτε τις δεξιότητές σας
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×