sql - एसक्यूएल बहु-चरम में बहु-कॉलम चुनें




sql-server teradata (2)

SELECT @var = col1,
       @var2 = col2
FROM   Table

एसईटी / चयन के बारे में कुछ दिलचस्प जानकारी यहां दी गई है

  • एसईटी वैरिएबल असाइनमेंट के लिए एएनएसआई मानक है, चयन नहीं है।
  • एसईटी एक समय में केवल एक चर निर्दिष्ट कर सकता है, चयन एक साथ कई असाइनमेंट कर सकता है।
  • यदि किसी क्वेरी से असाइन करना है, तो एसईटी केवल स्केलर मान असाइन कर सकता है। यदि क्वेरी एकाधिक मान / पंक्तियां लौटाती है तो एसईटी एक त्रुटि उठाएगा। चयन वैरिएबल को मानों में से एक को असाइन करेगा और इस तथ्य को छुपाएगा कि कई मान वापस लौटाए गए थे (इसलिए आपको शायद कभी पता नहीं चलेगा कि कुछ और गलत क्यों हो रहा था - मज़ेदार समस्या निवारण करें)
  • यदि कोई मान वापस नहीं किया गया है तो क्वेरी से असाइन करते समय एसईटी पूर्ण आवंटित करेगा, जहां SELECT असाइनमेंट नहीं करेगा (इसलिए चर को इसके पिछले मान से नहीं बदला जाएगा)
  • जहां तक ​​गति अंतर है - एसईटी और चयन के बीच कोई प्रत्यक्ष अंतर नहीं है। हालांकि एक शॉट में एकाधिक असाइनमेंट करने की चयन करने की क्षमता एसईटी पर थोड़ा सा गति प्रदान करती है।

मैं एसक्यूएल को टेराडाटा से SQL सर्वर में परिवर्तित कर रहा हूं

टेराडाटा में, उनके पास प्रारूप है

SELECT col1, col2
FROM table1
INTO @variable1, @variable2

एसक्यूएल सर्वर में, मैंने पाया

SET @variable1 = (
SELECT col1 
FROM table1
);

यह केवल एक कॉलम / परिवर्तनीय प्रति कथन की अनुमति देता है। एकल चयन कथन का उपयोग करके 2 या अधिक चर निर्दिष्ट कैसे करें?


SELECT @variable1 = col1, @variable2 = col2
FROM table1




teradata