2009-01-22 15 views

उत्तर

78

कुछ:

select @var1 = avg(someColumn), @var2 = avg(otherColumn) 
from theTable 
+0

बिल्कुल सही, धन्यवाद! – jandersson

1

set 
    @variableOne = avg(someColumn), 
    @variableTwo = avg(otherColumn) 
    from tblTable 

यह थोड़ा इस कार्य के रूप में के रूप में तुच्छ कुछ के लिए दो अलग-अलग चयन आपरेशन बनाने के लिए बेकार लगता है

कैसे

SELECT @variableOne = avg(someColumn), @variableTwo = avg(otherColumn) from tblTable 

यह मेरे लिए ठीक काम करता है।

9

आप एकाधिक चर निर्दिष्ट करने के लिए चयन असाइनमेंट का उपयोग कर सकते हैं। यह कोड स्थिरांक की एक पंक्ति उत्पन्न करता है और प्रत्येक को एक चर के लिए असाइन करता है।

SELECT 
    @var1 = 1, 
    @var2 = 'Zeus' 

तुम भी क्वेरी टेबल कर सकते हैं और काम है कि जिस तरह से कार्य करें:

SELECT 
    @var1 = c.Column1, 
    @var2 = c.Column2, 
FROM 
    Customers c 
WHERE c.CustomerID = @CustomerID 

सावधान: इस कोड को थोड़ी देर के पाश की तरह चल रही है।

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

SELECT असाइनमेंट पर SET असाइनमेंट का उपयोग करना पसंद करते हैं। उपरोक्त दोनों परिदृश्यों पर विचार करते समय केवल चयन असाइनमेंट का उपयोग करें।

संबंधित मुद्दे