Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

PostgreSQL या Oracle में महीने के नाम से ऑर्डर कैसे करें

समस्या:

आप महीने की संख्या के आधार पर पंक्तियों को क्रमबद्ध करना चाहते हैं, महीने के नाम दिए गए हैं (आप चाहते हैं कि जनवरी पहले दिखाया जाए, आखिरी दिसंबर)।

उदाहरण:

birthday तालिका में दो कॉलम होते हैं:नाम और birthday_month . महीने नामों में दिए जाते हैं, संख्या में नहीं।

<थ>जन्मदिन_माह
नाम
रोनन टीशा शून्य
दिसंबर जनवरी
एंजी जूलिया अप्रैल
नरेले डिलन अप्रैल
पर्डी केसी जनवरी
डोना नेल शून्य
ब्लेज़ ग्रीम अक्टूबर

आप पंक्तियों को birthday_month . के अनुसार क्रमित करना चाहते हैं ।

समाधान:

SELECT *
FROM birthday
ORDER BY EXTRACT(MONTH FROM TO_DATE(birthday_month, 'Month'));

परिणाम इस तरह दिखता है (पंक्तियों को birthday_month . द्वारा आरोही क्रम में क्रमबद्ध किया जाता है ):

<थ>जन्मदिन_माह
नाम
पर्डी केसी जनवरी
एंजी जूलिया अप्रैल
नरेले डिलन अप्रैल
ब्लेज़ ग्रीम अक्टूबर
रोनन टीशा जनवरी
दिसंबर शून्य
डोना नेल शून्य

चर्चा:

जनवरी से शुरू होने वाले और दिसंबर के साथ समाप्त होने वाले महीने के अनुसार पंक्तियों को क्रमबद्ध करने के लिए, आपको महीने को एक संख्या में बदलना होगा ('January ' से 1 तक, 'February ' से 2 . तक , आदि।)। अन्यथा, आप देखेंगे 'December 'January . से पहले '। TO_DATE(birthday_month, 'Month') फ़ंक्शन पूरे महीने के नाम को '0001-MM-01 में एक तारीख में बदल देता है ' प्रारूप। उदाहरण के लिए, आपको '0001-12-01 . मिलता है ' दिसंबर के लिए।

अब आप इस दिनांक मान से माह निकालने के लिए EXTRACT(MONTH FROM date) फ़ंक्शन का उपयोग कर सकते हैं। महीना 1 . के बीच की एक संख्या होगी और 12

इन दो कार्यों को मिलाकर, आप निम्न सूत्र का उपयोग करके महीने को एक संख्या के रूप में प्राप्त कर सकते हैं:

EXTRACT(MONTH FROM TO_DATE(birthday_month, 'Month'))

इस एक्सप्रेशन को ORDER BY . के बाद रखें महीने के हिसाब से पंक्तियों को छाँटने के लिए। यदि आप सबसे पहले नवीनतम माह देखना चाहते हैं, तो आपको अवरोही क्रम में क्रमित करना होगा। ऐसा करने के लिए, आपको एक DESC . का उपयोग करना होगा कीवर्ड, इस तरह:

SELECT *
FROM birthday
ORDER BY EXTRACT(MONTH FROM TO_DATE(birthday_month, 'Month')) DESC;

ध्यान दें कि PostgreSQL और Oracle में, NULL आरोही क्रम में छँटाई करते समय अंतिम प्रदर्शित होते हैं और अवरोही क्रम में छँटाई करते समय सबसे पहले प्रदर्शित होते हैं। साथ ही, समान birthday_month . वाली पंक्तियां यादृच्छिक क्रम में प्रदर्शित होते हैं (आप देख सकते हैं Angie Julia दूसरा और Narelle Dillan तीसरा, या Narelle Dillan दूसरा और Angie Julia तीसरा)।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑरैकल में शून्य बाधा कैसे उत्पन्न करें?

  2. गोद लेने के चरण में क्या होता है तैयारी

  3. जांचें कि क्या वर्तमान तिथि दो तिथियों के बीच है Oracle SQL

  4. एसक्यूएल एक समान क्वेरी पर शून्य मान प्रदर्शित नहीं कर रहा है?

  5. संग्रहीत प्रक्रिया से एकाधिक पंक्तियों को कैसे वापस करें? (ओरेकल पीएल/एसक्यूएल)