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

एसक्यूएल - महीने और महीने के नामों के पहले दिन की एक अस्थायी तालिका या सीटीई बनाएं

पुनरावर्ती सीटीई का उपयोग करने का एक तरीका:

declare @calYear int = 5, @currentYear char(4) = '2014'

;with cte (dt) as (
    select DATEFROMPARTS(@currentyear,1,1) dt
    union all
    select dateadd(month,1,dt) 
    from cte where dt < dateadd(year,@calyear,DATEFROMPARTS(@currentyear,1,1))
    )

select year(dt) YearDesc, datename(month, dt) MonthName, month(dt) MonthNum, dt FirstDayOfMonth 
from cte
order by dt 

या संख्या तालिका का उपयोग करना:(इस मामले में मास्टर..spt_values)

declare @calYear int = 5, @currentYear char(4) = '2014'

;with cte2 (dt) as (
    select dateadd(month,number,DATEFROMPARTS(@currentyear,1,1)) dt
    from master..spt_values where type = 'p'
    and number <= 12*@calYear
    )
select year(dt) YearDesc, datename(month, dt) MonthName, month(dt) MonthNum, dt FirstDayOfMonth 
from cte2
order by dt 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sp_executesql और पैरामीटर के साथ कर्सर

  2. दो प्रश्नों से परिणाम संलग्न करें और एक ही तालिका के रूप में आउटपुट करें

  3. SQL सर्वर 2019 (ज्ञात बग) में मूल रूप से संकलित संग्रहीत प्रक्रिया को निष्पादित करते समय "आंतरिक कनेक्शन घातक त्रुटि"

  4. SQL में एक शीर्ष स्तरीय अभिभावक ढूँढना

  5. SQL सर्वर पर संग्रहीत कार्यविधि का अनुसूचित रन