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

दिनांक सीमा में प्रत्येक माह के लिए अलग-अलग पंक्तियाँ बनाना

आप CONNECT BY . का उपयोग करके एक साधारण पंक्ति निर्माण तकनीक का उपयोग कर सकते हैं वाक्य रचना:

with sample_data as 
  (select 'XXA' id, to_date('1/23/14','MM/DD/RR') start_date, to_date('3/12/14','MM/DD/RR') end_date from dual)
select id, to_char(add_months(start_date,level - 1),'Month YYYY') date_column
from sample_data
connect by level <= extract(month from end_date) - extract(month from start_date) + 1;

संपादित करें DISTINCT जोड़ना इसे सभी पंक्तियों में काम करने देना चाहिए, मेरा मानना ​​है, हालांकि मुझे गलत साबित होने में दिलचस्पी होगी।संपादित करें 2 कई वर्षों को संभालने के लिए संशोधित उदाहरण (मूल रूप से ऐसा करना चाहिए था)। (उदाहरण देखें http://sqlfiddle.com/#!4/9eecb/4097/ 0 ।)

with sample_data as 
  ( select 'XXA' id, to_date('1/23/14','MM/DD/RR') start_date, to_date('3/12/15','MM/DD/RR') end_date from dual union all    
    select 'XXB' id, to_date('4/12/14','MM/DD/RR') start_date, to_date('6/18/15','MM/DD/RR') end_date from dual )
select distinct 
  id,
  to_char(add_months(start_date,level - 1),'Month YYYY') date_column,
  add_months(start_date,level -1) sortkey
from sample_data
connect by level <= ceil(months_between(trunc(end_date,'MM'), trunc(start_date,'MM'))) + 1
order by id, sortkey;

मेरे सैंडबॉक्स डीबी में यह उत्पन्न होता है:

ID  DATE_COLUMN     SORT_COL
XXA January   2014  23-JAN-2014 00:00:00
XXA February  2014  23-FEB-2014 00:00:00
XXA March     2014  23-MAR-2014 00:00:00
XXB April     2014  12-APR-2014 00:00:00
XXB May       2014  12-MAY-2014 00:00:00
XXB June      2014  12-JUN-2014 00:00:00


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. asp.net एप्लिकेशन 11g के लिए oracle इंस्टेंट क्लाइंट स्थापित करने के बाद भी oracle 11g से कनेक्ट नहीं हो रहा है

  2. केस क्लॉज निष्पादन प्रक्रिया

  3. दो अन्य विशेषताओं से Oracle डेटाबेस में एक नई विशेषता बनाना

  4. plsql प्रक्रिया दो तालिकाओं की तुलना करने के लिए जहां तालिका की संरचना ज्ञात नहीं है

  5. पीएल/एसक्यूएल एक सीएलओबी को क्वेरी परिणाम असाइन कर रहा है