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

SQLite में तिथि के अनुसार ऑर्डर कैसे करें

समस्या:

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

उदाहरण 1:

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

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

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

समाधान:

SELECT *
FROM exam
ORDER BY exam_date;

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

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

चर्चा:

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

SELECT *
FROM exam
ORDER BY exam_date ASC;

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

SELECT *
FROM exam
ORDER BY exam_date DESC;

ध्यान दें कि SQLite में, NULL आरोही क्रम में छँटाई करते समय s पहले प्रदर्शित होते हैं और अवरोही क्रम में छँटाई करते समय अंतिम होते हैं। साथ ही, समान exam_date . वाली पंक्तियां यादृच्छिक क्रम में प्रदर्शित होते हैं (आप 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 exam_year,
 (CASE exam_month
    WHEN 'January' THEN 1
    WHEN 'February' THEN 2
    WHEN 'March' THEN 3
    WHEN 'April' THEN 4
    WHEN 'May' THEN 5
    WHEN 'June' THEN 6
    WHEN 'July' THEN 7
    WHEN 'August' THEN 8
    WHEN 'September' THEN 9
    WHEN 'October' THEN 10
    WHEN 'November' THEN 11
    WHEN 'December' THEN 12
  END),
  exam_day;

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

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

चर्चा:

परीक्षा तिथि के अनुसार पंक्तियों को क्रमबद्ध करने के लिए, आपको पहले वर्ष के अनुसार क्रमबद्ध करना होगा, फिर संख्यात्मक महीने (महीने का नाम नहीं), और अंत में दिन के अनुसार। आप CASE WHEN . के साथ महीने के नामों को संख्यात्मक महीनों में बदल सकते हैं खंड। CASE के बाद कीवर्ड, कॉलम का नाम निर्दिष्ट करें। फिर, प्रत्येक WHEN के बाद, इस कॉलम में मान बताएं, THEN कीवर्ड का उपयोग करें, और पुराने मान के बजाय वह नया मान निर्दिष्ट करें जिसे आप असाइन करना चाहते हैं। यहां, कॉलम exam_month है , इस कॉलम में वर्तमान मान 'January . हैं ', 'February ',…,'December ', और नए मान संख्यात्मक महीने हैं 1 , 2 , ..., 12 . सभी मानों को कनवर्ट करने के बाद, END . का उपयोग करना याद रखें CASE WHEN बंद करने के लिए कीवर्ड खंड। एक नज़र डालें:

CASE exam_month
  WHEN 'January' THEN 1
  WHEN 'February' THEN 2
  WHEN 'March' THEN 3
  WHEN 'April' THEN 4
  WHEN 'May' THEN 5
  WHEN 'June' THEN 6
  WHEN 'July' THEN 7
  WHEN 'August' THEN 8
  WHEN 'September' THEN 9
  WHEN 'October' THEN 10
  WHEN 'November' THEN 11
  WHEN 'December' THEN 12
END

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

ORDER BY exam_year,
 (CASE exam_month
    WHEN 'January' THEN 1
    WHEN 'February' THEN 2
    WHEN 'March' THEN 3
    WHEN 'April' THEN 4
    WHEN 'May' THEN 5
    WHEN 'June' THEN 6
    WHEN 'July' THEN 7
    WHEN 'August' THEN 8
    WHEN 'September' THEN 9
    WHEN 'October' THEN 10
    WHEN 'November' THEN 11
    WHEN 'December' THEN 12
  END),
  exam_day

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

SELECT *
FROM exam
ORDER BY
  exam_year DESC,
  (CASE exam_month
    WHEN 'January' THEN 1
    WHEN 'February' THEN 2
    WHEN 'March' THEN 3
    WHEN 'April' THEN 4
    WHEN 'May' THEN 5
    WHEN 'June' THEN 6
    WHEN 'July' THEN 7
    WHEN 'August' THEN 8
    WHEN 'September' THEN 9
    WHEN 'October' THEN 10
    WHEN 'November' THEN 11
    WHEN 'December' THEN 12
  END) DESC,
  exam_day DESC;

ध्यान दें कि SQLite में अवरोही क्रम में सॉर्ट करते समय, NULL s अंतिम प्रदर्शित होते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite ALTER TABLE

  2. SQL डेटाबेस ट्यूटोरियल में Android.com के सेविंग डेटा को समझना

  3. SQLite JSON_VALID ()

  4. SQLite में विदेशी कुंजी समर्थन कैसे सक्षम करें

  5. कक्ष - बाहरी SQLites के साथ-साथ आंतरिक DB का उपयोग करना