Microsoft SQL Server
द्वारा आदेश
खोज…
टिप्पणियों
ORDER BY क्लॉज का उद्देश्य एक क्वेरी द्वारा लौटाए गए डेटा को सॉर्ट करना है।
यह नोट करना महत्वपूर्ण है कि जब तक कोई ORDER BY खंड न हो तब तक क्वेरी द्वारा लौटाए गए पंक्तियों का क्रम अपरिभाषित होता है।
ORDER के पूर्ण विवरण के लिए MSDN दस्तावेज़ीकरण देखें खंड: https://msdn.microsoft.com/en-us/library/ms188385.aspx
साधारण आदेश द्वारा खंड
नीचे कर्मचारी तालिका का उपयोग करके, (आरोही) मानदंड में Id, FName और LName कॉलम वापस करने के लिए एक उदाहरण है:
SELECT Id, FName, LName FROM Employees
ORDER BY LName
यह दिखाता है:
ईद | fName | LName |
---|---|---|
2 | जॉन | जॉनसन |
1 | जेम्स | लोहार |
4 | Johnathon | लोहार |
3 | माइकल | विलियम्स |
अवरोही क्रम में सॉर्ट करने के लिए फ़ील्ड पैरामीटर के बाद DESC कीवर्ड जोड़ें, जैसे कि LName अवरोही क्रम में एक ही क्वेरी है:
SELECT Id, FName, LName FROM Employees
ORDER BY LName DESC
कई क्षेत्रों द्वारा आदेश
कई क्षेत्रों को ORDER BY
या अवरोही क्रम में, ORDER BY
खंड के लिए निर्दिष्ट किया जा सकता है।
उदाहरण के लिए, http://stackoverflow.com/documentation/sql/280/example-dat डेटाबेस/1207/item-sales-table#t=201607211314066434211 तालिका का उपयोग करके, हम उस क्वेरी को वापस कर सकते हैं, जिस पर आरोही क्रम में SaleDate द्वारा, और अवरोही क्रम में मात्रा।
SELECT ItemId, SaleDate, Quantity
FROM [Item Sales]
ORDER BY SaleDate ASC, Quantity DESC
ध्यान दें कि ASC
कीवर्ड वैकल्पिक है, और परिणाम डिफ़ॉल्ट रूप से दिए गए फ़ील्ड के आरोही क्रम में क्रमबद्ध होते हैं।
जटिल तर्क के साथ आदेश द्वारा
यदि हम प्रति समूह के लिए अलग से डेटा ऑर्डर करना चाहते हैं, तो हम ORDER BY
एक CASE
सिंटैक्स जोड़ सकते हैं। इस उदाहरण में, हम विभाग 1 के कर्मचारियों को अंतिम नाम से और विभाग 2 के कर्मचारियों को वेतन से आदेश देना चाहते हैं।
ईद | fName | LName | फ़ोन नंबर | प्रबंधक- | DepartmentId | वेतन | चुनने की तारीख |
---|---|---|---|---|---|---|---|
1 | जेम्स | लोहार | 1 2 3 4 5 6 7 8 9 0 | शून्य | 1 | 1000 | 2002/01/01 |
2 | जॉन | जॉनसन | 2468101214 | 1 | 1 | 400 | 23-03-2005 |
3 | माइकल | विलियम्स | 1357911131 | 1 | 2 | 600 | 2009/12/05 |
4 | Johnathon | लोहार | 1212121212 | 2 | 1 | 500 | 24-07-2016 |
5 | सैम | सैक्सन | 1372141312 | 2 | 2 | 400 | 25-03-2015 |
The following query will provide the required results:
SELECT Id, FName, LName, Salary FROM Employees
ORDER BY Case When DepartmentId = 1 then LName else Salary end
कस्टम आदेश
यदि आप वर्णानुक्रम / संख्यात्मक आदेश के अलावा किसी अन्य चीज़ का उपयोग करके एक कॉलम द्वारा ऑर्डर करना चाहते हैं, तो आप इच्छित ऑर्डर को निर्दिष्ट करने के लिए case
का उपयोग कर सकते हैं।
order by Group
रिटर्न order by Group
:
समूह | गिनती |
---|---|
सेवानिवृत्त नहीं | 6 |
अवकाश प्राप्त | 4 |
कुल | 10 |
order by case group when 'Total' then 1 when 'Retired' then 2 else 3 end
रिटर्न:
समूह | गिनती |
---|---|
कुल | 10 |
अवकाश प्राप्त | 4 |
सेवानिवृत्त नहीं | 6 |