sql एसक्यूएल सर्वर में नेस्टेड चयन कथन




sql-server nested (2)

क्या कोई मुझे समझने में मदद कर सकता है कि निम्नलिखित क्यों काम नहीं करते?

SELECT name FROM (SELECT name FROM agentinformation)

मुझे लगता है कि एसक्यूएल की मेरी समझ गलत है, क्योंकि मैंने सोचा होगा कि यह वही चीज़ वापस करेगा

SELECT name FROM agentinformation

आंतरिक चयन कथन एक परिणाम सेट नहीं बनाता है जो बाहरी चयन कथन के बाद पूछताछ करता है?

https://code.i-harness.com


आपको सबक्वायरी को उपनाम करने की आवश्यकता है।

SELECT name FROM (SELECT name FROM agentinformation) a  

या अधिक स्पष्ट होने के लिए

SELECT a.name FROM (SELECT name FROM agentinformation) a  

जो Stefanelli द्वारा प्रदान किया गया Answer पहले से ही सही है।

SELECT name FROM (SELECT name FROM agentinformation) as a  

हमें उपधारा के उपनाम बनाने की आवश्यकता है क्योंकि क्वेरी को टेबल ऑब्जेक्ट की आवश्यकता होती है जिसे हम उपनाम के लिए उपनाम बनाने से प्राप्त करेंगे। संकल्पनात्मक रूप से, subquery परिणाम बाहरी क्वेरी में प्रतिस्थापित कर रहे हैं। चूंकि हमें बाहरी क्वेरी में टेबल ऑब्जेक्ट की आवश्यकता है, इसलिए हमें आंतरिक क्वेरी का उपनाम बनाना होगा।

विवरण जिनमें एक सबक्वायरी शामिल होती है आमतौर पर इन प्रारूपों में से एक लेती है:

  • जहां अभिव्यक्ति [नहीं] IN (subquery)
  • अभिव्यक्ति तुलना_ऑपरेटर [कोई भी | सभी] (सबक्वायरी)
  • जहां [नहीं] EXISTS (सबक्वायरी)

अधिक सबक्वायरी नियमों और सबक्वायरी प्रकारों के लिए जांचें।

नेस्टेड सबक्वायरी के अधिक उदाहरण

  1. IN / NOT IN - आंतरिक ऑपरेटर निष्पादित होने के बाद यह ऑपरेटर आंतरिक क्वेरी का आउटपुट लेता है जो शून्य या अधिक मान हो सकता है और इसे बाहरी क्वेरी पर भेज सकता है। बाहरी क्वेरी तब सभी मिलान [ऑपरेटर] प्राप्त करती है या गैर मिलान नहीं [ऑपरेटर में नहीं] पंक्तियां।

  2. कोई भी - [> कोई भी या कोई भी ऑपरेटर आंतरिक क्वेरी द्वारा उत्पादित मूल्यों की सूची लेता है और सूची के न्यूनतम मूल्य से अधिक सभी मान प्राप्त करता है।

उदाहरण के लिए> कोई भी (100,200,300), कोई भी ऑपरेटर 100 से अधिक मूल्यों को लाएगा।

  1. सभी - [> सभी या सभी ऑपरेटर आंतरिक क्वेरी द्वारा उत्पादित मानों की सूची लेते हैं और अधिकतम मूल्यों से अधिक होने वाले सभी मान प्राप्त करते हैं।

उदाहरण के लिए> सभी (100,200,300), सभी ऑपरेटर 300 से अधिक मूल्यों को लाएंगे।

  1. EXISTS - EXISTS कीवर्ड एक बूलियन मान [TRUE / FALSE] उत्पन्न करता है। यह EXISTS उप क्वेरी द्वारा लौटाई गई पंक्तियों के अस्तित्व की जांच करता है।




querying