एसक्यूएल - SORTING परिणाम

एसक्यूएल ORDER BYएक या अधिक कॉलम के आधार पर, डेटा को आरोही या अवरोही क्रम में सॉर्ट करने के लिए उपयोग किया जाता है। कुछ डेटाबेस डिफ़ॉल्ट रूप से एक आरोही क्रम में क्वेरी परिणामों को क्रमबद्ध करते हैं।

वाक्य - विन्यास

ORDER BY क्लॉज का मूल सिंटैक्स जिसका उपयोग आरोही या अवरोही क्रम में परिणाम को सॉर्ट करने के लिए किया जाएगा -

SELECT column-list 
FROM table_name 
[WHERE condition] 
[ORDER BY column1, column2, .. columnN] [ASC | DESC];

आप ORDER BY क्लॉज में एक से अधिक कॉलम का उपयोग कर सकते हैं। सुनिश्चित करें कि आप जो भी कॉलम सॉर्ट करने के लिए उपयोग कर रहे हैं, वह कॉलम कॉलम-लिस्ट में होना चाहिए।

उदाहरण

निम्नलिखित रिकॉर्ड वाले ग्राहक तालिका पर विचार करें -

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

निम्नलिखित एक उदाहरण है, जो NAME और SALARY द्वारा बढ़ते क्रम में परिणाम को क्रमबद्ध करेगा।

SQL> SELECT * FROM CUSTOMERS
   ORDER BY NAME, SALARY;

यह निम्नलिखित परिणाम का उत्पादन करेगा -

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
+----+----------+-----+-----------+----------+

निम्नलिखित कोड ब्लॉक का एक उदाहरण है, जो NAME द्वारा अवरोही क्रम में परिणाम को क्रमबद्ध करेगा।

SQL> SELECT * FROM CUSTOMERS
   ORDER BY NAME DESC;

यह निम्नलिखित परिणाम का उत्पादन करेगा -

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
+----+----------+-----+-----------+----------+

अपने स्वयं के पसंदीदा ऑर्डर के साथ पंक्तियों को लाने के लिए, उपयोग की गई सेलेक्ट क्वेरी निम्नानुसार होगी -

SQL> SELECT * FROM CUSTOMERS
   ORDER BY (CASE ADDRESS
   WHEN 'DELHI' 	 THEN 1
   WHEN 'BHOPAL' 	 THEN 2
   WHEN 'KOTA' 	 THEN 3
   WHEN 'AHMEDABAD' THEN 4
   WHEN 'MP' 	THEN 5
   ELSE 100 END) ASC, ADDRESS DESC;

यह निम्नलिखित परिणाम का उत्पादन करेगा -

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
+----+----------+-----+-----------+----------+

यह आपके द्वारा ADDRESS द्वारा ग्राहकों को क्रमबद्ध करेगा ownoOrderवरीयता पहले और शेष पतों के लिए एक प्राकृतिक क्रम में। साथ ही, शेष पते रिवर्स अल्फाबेटिकल ऑर्डर में सॉर्ट किए जाएंगे।