दिलचस्प पोस्ट
एकाधिक समूह द्वारा कई कार्यों को कॉलम के अनुसार लागू करें मैं एक उथले क्लोन से क्यों नहीं पुल सकता हूं? क्या फ़ंक्शन केवल एक रिटर्न स्टेटमेंट है? एक प्रॉपर्टी शुरू करना, डॉट नोटेशन जावास्क्रिप्ट – कैसे पता लगाया गया है कि दस्तावेज़ लोड हो रहा है (IE 7 / Firefox 3) एंड्रॉइड ऐप 0 डिवाइसों द्वारा समर्थित है नेस्टेड संग्रह इकाई फ़्रेमवर्क ऑब्जेक्ट फ़िल्टर कैसे करें? सीमके: सेटअप स्रोत, लाइब्रेरी और सीएमकेलिस्ट्स टैक्स्ट निर्भरता कैसे करें? जावा में सॉफ्टरेफरेंस और वीक रेफरेंस के बीच क्या अंतर है? फॉट्रॉर 90 में दो वैक्टर के क्रॉस उत्पाद की गणना करना स्प्रिंग में ऑब्जेक्ट मैपरपर को कॉन्फ़िगर करना XHR अनुरोध की प्रतिक्रिया के रूप में रिडायरेक्ट रिटर्निंग एकल पृष्ठ एप्लिकेशन – आंशिक दृश्य के आधार पर गतिशील रूप से लोड जेएस फ़ाइल त्रुटि: Servlet जार लोड नहीं है … आक्रमण वर्ग: javax / servlet / Servlet.class मोंगो डीबी: एक से कई संग्रहों से डेटा एकत्र करें..कैसे?

चर निर्दिष्ट करने पर SET बनाम चयन करें?

टी-एसक्यूएल में चर निर्दिष्ट करते समय SET और SELECT स्टेटमेंट्स के बीच अंतर क्या हैं?

वेब के समाधान से एकत्रित समाधान "चर निर्दिष्ट करने पर SET बनाम चयन करें?"

उद्धरण , जो इस लेख से सारांशित है:

  1. सेट एएनएसआई मानक चर असाइनमेंट के लिए है, SELECT नहीं है।
  2. SET केवल एक समय में एक चर को निर्दिष्ट कर सकता है, SELECT एक बार में कई असाइनमेंट कर सकता है।
  3. यदि किसी क्वेरी से असाइन करते हैं, तो एसईटी केवल एक स्केलर मान निर्दिष्ट कर सकता है। यदि क्वेरी कई मान / पंक्ति लौटाता है तो एसईटी एक त्रुटि बढ़ाएगी। SELECT एक चर को वैरिएबल को आवंटित करेगा और इस तथ्य को छिपाएगा कि कई मान लौटाए गए हैं (इसीलिए आप कभी नहीं जानते होंगे कि कहीं क्यों कुछ गलत हो रहा है – मज़ेदार समस्या निवारण कि एक है)
  4. कोई क्वेरी से असाइन करते समय यदि कोई मान नहीं होता है तो SET शून्य को असाइन करेगा, जहां SELECT से असाइनमेंट नहीं किया जाएगा (इसलिए चर इसके पिछले मान से बदल नहीं होगा)
  5. जहां तक ​​गति अंतर – सेट और चयन के बीच कोई सीधा अंतर नहीं है। हालांकि SELECT एक शॉट में कई कार्य करने की क्षमता एसईटी पर थोड़ी सी गति लाभ देती है।

मेरा मानना ​​है कि SET एएनएसआई मानक है, जबकि SELECT नहीं है। इसके अलावा SET बनाम के विभिन्न व्यवहार को ध्यान में रखें, जब कोई मान नहीं मिला है तो नीचे दिए गए उदाहरण में SELECT

 declare @var varchar(20) set @var = 'Joe' set @var = (select name from master.sys.tables where name = 'qwerty') select @var /* @var is now NULL */ set @var = 'Joe' select @var = name from master.sys.tables where name = 'qwerty' select @var /* @var is still equal to 'Joe' */ 

प्रश्न लिखते समय, यह अंतर ध्यान में रखा जाना चाहिए:

 DECLARE @A INT = 2 SELECT @A = TBL.A FROM ( SELECT 1 A ) TBL WHERE 1 = 2 SELECT @A /* @A is 2*/ --------------------------------------------------------------- DECLARE @A INT = 2 SET @A = ( SELECT TBL.A FROM ( SELECT 1 A) TBL WHERE 1 = 2 ) SELECT @A /* @A is null*/