开发者社区> 问答> 正文

在CTE中创建表

我希望有一个可以使用的表格,但可以由整体CTE引用

CTE_MONTHS as (
   DECLARE @MONTHS TABLE ([NUMBER] int, NAME varchar(max))
   INSERT INTO @MONTHS
   select ([NUMBER],[NAME]) VALUES
   ('1' ,'JANUARY')
   ,('2' ,'FEBRUARY')
   ,('3' ,'MARCH')
   ,('4' ,'APRIL')
   ,('5' ,'MAY')
   ,('6' ,'JUNE')
   ,('7' ,'JULY')
   ,('8' ,'AUGUST')
   ,('9' ,'SEPTEMBER')
   ,('10','OCTOBER')
   ,('11','NOVEMBER')
   ,('12','DECEMBER')
   select * from @MONTHS
   )

展开
收起
祖安文状元 2020-01-04 15:24:51 535 0
1 条回答
写回答
取消 提交回答
  • 我不认为我以前很清楚,但是我没有试图制作一个临时表。我想避免任何插入或任何表创建(即使它是临时的)。

    我有类似下面的内容...我想能够在按F5键之前更改CTE_MONTHS脚本中的VALUES。因此,例如,也许我希望9是2月,然后运行查询。

    WITH CTE_DATA as
     (select distinct
     MONTH(Effective_Date) as MONTH_NUM,
     DATENAME(MONTH, Effective_date) as MONTH_NAME,
     ACTIVE_DATE,
     INACTIVE_DATE,
     TN,
     MARKET_NPAS
     FROM SEP19TN2
     WHERE [LRN] <> 'Y _OOL' and MONTH(Effective_Date) is not null),
    
    CTE_MONTHS as (
     --DECLARE MONTHS TABLE ([NUMBER] int, NAME varchar(max))
     --INSERT INTO MONTHS
     select ([NUMBER],[NAME]) VALUES
     ('1' ,'JANUARY'  )
     ,('2' ,'FEBRUARY' )
     ,('3' ,'MARCH'   )
     ,('4' ,'APRIL'   )
     ,('5' ,'MAY'     )
     ,('6' ,'JUNE'    )
     ,('7' ,'JULY'    )
     ,('8' ,'AUGUST')
     ,('9' ,'SEPTEMBER')
     ,('10','OCTOBER')
     ,('11','NOVEMBER')
     ,('12','DECEMBER')
     --select * from @MONTHS
     ) 
    
    and here goes some kind of query that references both CTEs
    
    
     ***
    
    2020-01-04 15:25:10
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载