可以与多个CTE一起使用

Som*_*kar 0 sql t-sql sql-server sql-server-2008-r2

可以和多个cte一起使用select吗?例如,在下面的代码中,将第一个cte cte_table的结果插入dbo.table1中,然后定义另一个cte。这可能吗?

WITH cte_table 
AS 
( 
SELECT * 
FROM dbo.table
)
INSERT INTO dbo.table1 
SELECT *
FROM [cte_table]
, cte_table2
AS
(
SELECT * 
FROM dbo.table2
)
Run Code Online (Sandbox Code Playgroud)

小智 5

将所有CTE链接起来,然后将其选入。

WITH First_CTE AS
(
    SELECT
        Columns
    FROM
        Schema.Table
    WHERE
        Conditions
),
Second_CTE AS
(
    SELECT
        Columns
    FROM
        Schema.OtherTable
    WHERE
        Conditions
)

SELECT
    Variables
INTO
    NewTable
FROM
    First_CTE A
JOIN
    Second_CTE B
ON
    A.MatchVar = B.MatchVar
Run Code Online (Sandbox Code Playgroud)

如果您以后不需要CTE,但更喜欢使用比子查询更简单的方法作为ETL,这将很有帮助。