2011-11-02 11 views
12
SELECT Departamentos.Nome_Dep, 
     Funcionarios.Nome AS Funcionario, 
     Funcionarios.Salario, 
     AVG(Funcionarios.Salario) OVER(PARTITION BY Departamentos.Nome_Dep) "Média por Departamento" 
     Salario - AVG(Funcionarios.Salario) OVER(PARTITION BY Departamentos.Nome_Dep) "Diferença de Salário" FROM Funcionarios 
INNER JOIN Departamentos 
    ON Funcionarios.ID_Dep = Departamentos.ID 
ORDER BY 5 DESC 

ऑर्डर बाय 5 मुझे फेंक रहा है। मैंने कभी ऐसा कुछ नहीं किया है। आदेश [colunmname] द्वारा आदेश, लेकिन आदेश [संख्या] द्वारा, पहले कभी नहीं देखा। मैंने इसे एक लेख से खींच लिया।5 डीईएससी द्वारा आदेश क्या है?

नोट: यह टी-एसक्यूएल है।

स्रोत: Window Functions in SQL Server 2005, 2008, 2012

+3

नहीं, यह सामान्य रूप से एक अच्छा अभ्यास नहीं है क्योंकि कोई आसानी से कॉलम जोड़ सकता है और बिना किसी ध्यान के ऑर्डरिंग को बदल सकता है, मुझे संदेह है कि यह इस मामले में किया जाता है हालांकि कॉलम 5 की गणना कॉलम है और वे नहीं जाना चाहते थे आदेश में कैलिलेशन दोहराने की दिक्कत। बीटीडब्ल्यू कॉलम 4 और 5 – HLGEM

उत्तर

22

यह परिणाम सेट में 5 वीं कॉलम के आधार पर इस SELECT कथन

+0

उत्कृष्ट के बीच एक लापता कॉमा है। धन्यवाद। मैंने तुरंत जवाब देने के बाद इसे लेख में देखा। धन्यवाद। – dotnetN00b

4

आदेश में 5 वें क्षेत्र से आदेश देगा।

4

परिणाम सेट उतरते में पांचवें स्तंभ द्वारा आदेश।

0

परिणाम सेट में 5 वें क्षेत्र द्वारा आदेश।

0

यह रिश्तेदार स्थिति द्वारा क्रमबद्ध है।

आप परिणाम सेट में सापेक्ष स्थिति द्वारा सॉर्ट करने के लिए SQL ORDER BY खंड का उपयोग कर सकते हैं, जहां परिणाम सेट में पहला फ़ील्ड 1 है। अगला फ़ील्ड 2 है, और इसी तरह। यहां इस मामले में परिणाम सेट में 5 वें फ़ील्ड द्वारा ऑर्डर करें।

एसक्यूएल ऑर्डर के बारे में http://www.techonthenet.com/sql/order_by.php के माध्यम से जाएं।

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