2011-10-13 14 views
6

के एक जोड़े से बाहर अधिकतम या न्यूनतम मूल्य को खोजने के लिए मैं सिर्फ पता चला कि एसक्यूएल में मैक्स() फ़ंक्शन केवल स्तंभों पर काम करता है।एसक्यूएल सर्वर पर, कैसे चर

वहाँ एक समान कार्य मैं उदा से बाहर अधिकतम मूल्य को खोजने के लिए उपयोग कर सकते हैं है इन चार चर?

SET @return = MAX(@alpha1, @alpha2, @alpha3, @alpha4) 

या मैं एक कॉलम में उन्हें पहली डाल (और इस प्रकार एक मेज पहले बनाना ... ;-() क्या ज़रूरत है?

सादर

Lumpi

उत्तर

9

कोई भी नहीं है इस के लिए T-SQL में निर्मित समारोह लेकिन आप निम्न का उपयोग कर सकते

SELECT @result = MAX(alpha) 
FROM (SELECT @alpha1 
     UNION ALL 
     SELECT @alpha2 
     UNION ALL 
     SELECT @alpha3) T(alpha); 

या (SQL सर्वर 2008 +)

SELECT @result = MAX(alpha) 
FROM (VALUES(@alpha1), 
      (@alpha2), 
      (@alpha3)) T(alpha); 
+0

धन्यवाद! वैकल्पिक 1 प्रारंभिक एसक्यूएल सर्वर संस्करणों पर क्यों काम नहीं करता है? – Lumpi

+3

@ लंपी - वैकल्पिक 2 मुझे लगता है कि आपका मतलब है? पंक्ति मूल्य Construcvtors उस संस्करण तक पेश नहीं किया गया था। –

+0

मुझे वास्तव में पोस्ट से कम से कम() 'और' महानतम() 'फ़ंक्शन याद आती है - http://www.postgresql.org/docs/current/static/functions-conditional.html। इसे पढ़ने और उनका उपयोग करना बहुत आसान है ... –