在 SQL 中使用 CTE 创建 table
Create table with CTEs in SQL
我有一个 CTE,我正在尝试从中创建一个 table,但不确定我做错了什么?我一直收到错误 "Incorrect syntax near ';'."
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 服务器不支持 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
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
我有一个 CTE,我正在尝试从中创建一个 table,但不确定我做错了什么?我一直收到错误 "Incorrect syntax near ';'."
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 服务器不支持 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
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