在 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 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

SQL Fiddle

MS SQL Server 2017 架构设置

CREATE TABLE #ATB (
productivity_srt_date VARCHAR(250)
,productivity_end_date VARCHAR(250)
, DenialStrt_date VARCHAR(250)
, ME_end_date VARCHAR(250)
);

查询 1

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       
from rpt_dts

结果

最新更新