首页 > 解决方案 > 在 SQL 中使用 CTE 创建表

问题描述

我有一个 CTE,我试图从中创建一个表,但不确定我做错了什么?我不断收到错误消息“';' 附近的语法不正确。”

create table ATB AS

;WITH 


rpt_dts as (

select 
        CONVERT(varchar(12),GETDATE() -30, 101) productivity_srt_date 
       ,CONVERT(varchar(12),GETDATE(), 101) productivity_end_date
       ,CONVERT(varchar(12),'1/1/2017', 101) DenialStrt_date  
       ,CONVERT(varchar(12),GETDATE(), 101) ME_end_date   


) select * from rpt_dts

标签: sql-servercommon-table-expressioncreate-table

解决方案


SQL Server 不支持 CTA:

;WITH rpt_dts as (
  select 
        CONVERT(varchar(12),GETDATE() -30, 101) productivity_srt_date 
       ,CONVERT(varchar(12),GETDATE(), 101) productivity_end_date
       ,CONVERT(varchar(12),'1/1/2017', 101) DenialStrt_date  
       ,CONVERT(varchar(12),GETDATE(), 101) ME_end_date   
) 
select * 
into ATB        -- into clause is a workaround
from rpt_dts

推荐阅读