Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Δευτερεύον ερώτημα είναι μια πρόταση SELECT ένθετη μέσα σε μια ΠΡΌΤΑΣΗ SELECT, SELECT... INTO, INSERT... Πρόταση INTO, DELETE ή UPDATE ή μέσα σε άλλο δευτερεύον ερώτημα.

Σύνταξη

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

σύγκριση [ANY | ALL | SOME] (sqlstatement)

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

[NOT] EXISTS (sqlstatement)

Ένα δευτερεύον ερώτημα έχει τα εξής τμήματα:

Τμήμα

Περιγραφή

Σύγκριση

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

παράσταση

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

πρόταση_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 σε ΟΛΑ στο προηγούμενο παράδειγμα, το ερώτημα θα επιστρέψει μόνο τα προϊόντα των οποίων η τιμή μονάδας είναι μεγαλύτερη από αυτή όλων των προϊόντων που πωλούνται με έκπτωση 25 τοις εκατό ή μεγαλύτερη. Αυτό είναι πολύ πιο περιοριστικό.

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

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

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

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

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

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. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

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

×