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

टी-एसक्यूएल में तिथि के अनुसार ऑर्डर कैसे करें

समस्या:

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

उदाहरण 1:

exam टेबल में दो कॉलम होते हैं, subject और exam_date

विषय परीक्षा तिथि
गणित 2019-12-19
अंग्रेज़ी 2020-01-08
विज्ञान 2020-01-05
स्वास्थ्य 2020-01-05
कला शून्य

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

समाधान:

SELECT *
FROM Exam
ORDER BY ExamDate;

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

विषय परीक्षा तिथि
कला शून्य
विज्ञान 2020-01-05
स्वास्थ्य 2020-01-05
अंग्रेज़ी 2020-01-08
गणित 2019-12-19

चर्चा:

ORDER BY का प्रयोग करें कीवर्ड और कॉलम का नाम जिसके द्वारा आप सॉर्ट करना चाहते हैं। इस तरह, आप इस कॉलम के आधार पर डेटा को आरोही क्रम में क्रमबद्ध करेंगे। आप ASC . का भी उपयोग कर सकते हैं कीवर्ड यह स्पष्ट करने के लिए कि क्रम आरोही है (सबसे पहले की तारीख पहले दिखाई जाती है, नवीनतम तारीख आखिरी दिखाई जाती है, आदि)।

SELECT *
FROM Exam
ORDER BY ExamDate ASC;

यदि आप सबसे पहले नवीनतम तिथि और सबसे अंतिम तिथि देखना चाहते हैं, तो आपको अवरोही क्रम में क्रमबद्ध करना होगा। DESC का उपयोग करें इस मामले में कीवर्ड।

SELECT *
FROM Exam
ORDER BY ExamDate DESC;

ध्यान दें कि T-SQL में, NULL आरोही क्रम में छँटाई करते समय s पहले प्रदर्शित होते हैं और अवरोही क्रम में छँटाई करते समय अंतिम होते हैं। साथ ही, समान ExamDate . वाली पंक्तियां गैर-नियतात्मक क्रम में प्रदर्शित होते हैं (आप Science देख सकते हैं दूसरा और Health तीसरा, या Health दूसरा और Science तीसरा)।

उदाहरण 2:

exam तालिका में निम्नलिखित कॉलम हैं:subject , exam_year , exam_month , और exam_day . महीना नाम से दिया जाता है, संख्या से नहीं।

विषय परीक्षा वर्ष परीक्षा का महीना परीक्षा का दिन
गणित 2019 दिसंबर 19
अंग्रेज़ी 2020 जनवरी 8
विज्ञान 2020 जनवरी 5
स्वास्थ्य 2020 जनवरी 5
कला शून्य शून्य शून्य

आप परीक्षा तिथि के अनुसार पंक्तियों को क्रमबद्ध करना चाहते हैं।

समाधान:

SELECT *
FROM Exam
ORDER BY CAST(
  CAST(ExamYear AS VARCHAR(4))
  + '-'
  + ExamMonth
  + '-'
  + CAST(ExamDay AS VARCHAR(2))
AS DATE);

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

विषय परीक्षा वर्ष परीक्षा का महीना परीक्षा का दिन
कला शून्य शून्य शून्य
स्वास्थ्य 2020 जनवरी 5
विज्ञान 2020 जनवरी 5
अंग्रेज़ी 2020 जनवरी 8
गणित 2019 दिसंबर 19

चर्चा:

तिथि के अनुसार समूह बनाने के लिए, वर्ष, माह और दिन के मानों से दिनांक मान बनाएं। ऐसा करने के लिए, CAST () फ़ंक्शन का उपयोग करें। यदि आपके पास 'YYYY-Month-DD . में एक स्ट्रिंग के रूप में संग्रहीत दिनांक है ' प्रारूप में, आप इसे CAST(date_string AS date) using का उपयोग करके किसी तिथि पर कास्ट कर सकते हैं . सबसे पहले, आपको CAST() फ़ंक्शन का उपयोग करके भी एक स्ट्रिंग बनाने की आवश्यकता है:

CAST(ExamYear AS VARCHAR(4))
+ '-'
+ ExamMonth
+ '-'
+ CAST(ExamDay AS VARCHAR(2))

अभिव्यक्ति CAST(ExamYear AS VARCHAR(4)) ExamYear . में संग्रहीत संख्या से एक स्ट्रिंग बनाता है . अभिव्यक्ति CAST(ExamDay AS VARCHAR(2)) ExamDay . में संग्रहीत संख्या से एक स्ट्रिंग बनाता है . ExamMonth पहले से ही एक स्ट्रिंग है, इसलिए इसे कास्ट करने की कोई आवश्यकता नहीं है।

फिर, आपको CAST(date_string AS date) का उपयोग करके इस स्ट्रिंग को किसी तिथि पर डालना होगा समारोह:

CAST(
  CAST(ExamYear AS VARCHAR(4))
  + '-'
  + ExamMonth
  + '-'
  + CAST(ExamDay AS VARCHAR(2))
AS DATE)

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

SELECT *
FROM Exam
ORDER BY CAST(
  CAST(ExamYear AS VARCHAR(4))
  + '-'
  + ExamMonth
  + '-'
  + CAST(ExamDay AS VARCHAR(2))
AS DATE) DESC;

  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. उन्नत SQL:SQL तालिका में पैरामीटरयुक्त तालिका-मूल्यवान फ़ंक्शन का आउटपुट सम्मिलित करें

  3. स्रोत नियंत्रण डेटाबेस के लिए कार्य फ़ोल्डर का उपयोग करना

  4. JavaFX UI और JDBC अनुप्रयोगों के साथ कार्य करना

  5. बुरी आदतें :चाबियाँ चुनते समय केवल डिस्क स्थान पर ध्यान केंद्रित करना