खोज…
टिप्पणियों
उप-वर्ग बाहरी क्वेरी के अलग-अलग खंडों में या सेट ऑपरेशन में दिखाई दे सकते हैं।
उन्हें कोष्ठक ()
में संलग्न होना चाहिए। यदि सबक्वेरी के परिणाम की तुलना किसी और चीज से की जाती है, तो कॉलम की संख्या से मेल खाना चाहिए। अस्थायी तालिका का नाम देने के लिए FROM क्लॉज में उप-श्रेणियों के लिए टेबल उपनामों की आवश्यकता होती है।
WHERE क्लॉज में उपशम
परिणाम सेट को फ़िल्टर करने के लिए एक सबक्वेरी का उपयोग करें। उदाहरण के लिए यह सभी कर्मचारियों को उच्चतम वेतन वाले कर्मचारी के बराबर वेतन के साथ लौटाएगा।
SELECT *
FROM Employees
WHERE Salary = (SELECT MAX(Salary) FROM Employees)
FROM क्लॉज में उपशम
FROM
क्लॉज में एक उपश्रेणी एक अस्थायी तालिका के समान कार्य करती है जो क्वेरी के निष्पादन के दौरान उत्पन्न होती है और बाद में खो जाती है।
SELECT Managers.Id, Employees.Salary
FROM (
SELECT Id
FROM Employees
WHERE ManagerId IS NULL
) AS Managers
JOIN Employees ON Managers.Id = Employees.Id
चयन खंड में उपशम
SELECT
Id,
FName,
LName,
(SELECT COUNT(*) FROM Cars WHERE Cars.CustomerId = Customers.Id) AS NumberOfCars
FROM Customers
FROM क्लॉज में उपश्रेणियाँ
आप एक अस्थायी तालिका को परिभाषित करने के लिए उप-वर्गों का उपयोग कर सकते हैं और इसे "बाहरी" क्वेरी के FROM खंड में उपयोग कर सकते हैं।
SELECT * FROM (SELECT city, temp_hi - temp_lo AS temp_var FROM weather) AS w
WHERE temp_var > 20;
ऊपर मौसम तालिका से शहरों का पता चलता है जिसका दैनिक तापमान भिन्नता 20 से अधिक है। परिणाम है:
Faridabad | temp_var |
---|---|
सेंट लुईस | 21 |
लॉस एंजिलस | 31 |
लॉस एंजिलस | 23 |
लॉस एंजिलस | 31 |
लॉस एंजिलस | 27 |
लॉस एंजिलस | 28 |
लॉस एंजिलस | 28 |
लॉस एंजिलस | 32 |
।
WHERE क्लॉज में उपश्रेणियाँ
निम्नलिखित उदाहरण शहरों को ( शहरों के उदाहरण से ) पाते हैं, जिनकी जनसंख्या औसत तापमान से कम है (उप-वर्ग के माध्यम से प्राप्त):
SELECT name, pop2000 FROM cities
WHERE pop2000 < (SELECT avg(pop2000) FROM cities);
यहाँ: सबक्वेरी (सेलेक्ट एवीजी (पॉप २००) शहरों से) का उपयोग WHERE क्लॉज में शर्तों को निर्दिष्ट करने के लिए किया जाता है। परिणाम है:
नाम | pop2000 |
---|---|
सैन फ्रांसिस्को | 776,733 |
सेंट लुईस | 348,189 |
कन्सास शहर | 146,866 |
चयन खंड में उपश्रेणियाँ
सबक्वेरी भी इस्तेमाल किया जा सकता SELECT
बाहरी क्वेरी का हिस्सा है। निम्नलिखित क्वेरी शहरों की तालिका से संबंधित राज्यों के साथ सभी मौसम तालिका कॉलम दिखाती है।
SELECT w.*, (SELECT c.state FROM cities AS c WHERE c.name = w.city ) AS state
FROM weather AS w;
भिन्न तालिका पर क्वेरी का उपयोग करके क्वेरी परिणामों को फ़िल्टर करें
यह क्वेरी सभी कर्मचारियों को पर्यवेक्षकों की मेज पर नहीं चुनती है।
SELECT *
FROM Employees
WHERE EmployeeID not in (SELECT EmployeeID
FROM Supervisors)
एक ही परिणाम एक बाईं ओर का उपयोग करके प्राप्त किया जा सकता है।
SELECT *
FROM Employees AS e
LEFT JOIN Supervisors AS s ON s.EmployeeID=e.EmployeeID
WHERE s.EmployeeID is NULL
परस्पर संबंधित उपवाक्य
सहसंबद्ध (जिसे सिंक्रोनाइज्ड या कोऑर्डिनेटेड भी कहा जाता है) सबवेरीटेड नेस्टेड क्वेश्चन हैं जो उनकी बाहरी क्वेरी की वर्तमान पंक्ति का संदर्भ देते हैं:
SELECT EmployeeId
FROM Employee AS eOuter
WHERE Salary > (
SELECT AVG(Salary)
FROM Employee eInner
WHERE eInner.DepartmentId = eOuter.DepartmentId
)
eOuter
SELECT AVG(Salary) ...
सहसंबद्ध है क्योंकि यह अपने बाहरी प्रश्न से Employee
पंक्ति को संदर्भित करता है।