如何使用cte?

时间:2018-02-09 13:44:52

标签: sql sql-server

我有一个简单的结构,如cte:

;WITH Base_cte AS 
    (
        SELECT
        FROM
        WHERE
    )

SELECT
FROM
   (
       SELECT
       FROM Base_cte
       WHERE
    )

SELECT
FROM Base_cte
WHERE

使用cte:

返回第二个选择
  

无效的对象名称'Base_cte'。

我不知道为什么它第二次无法识别cte。代码太大了,不能粘贴在这里,但基本上我很简单,我认为我必须遗漏一些基本的东西。 任何提示都将不胜感激。

2 个答案:

答案 0 :(得分:4)

您需要使用此格式

;WITH Base_cte AS 
    (
        SELECT
        FROM
        WHERE
    )
,CTE1 AS
(
       SELECT
       FROM Base_cte
       WHERE
)
SELECT * FROM CTE1

答案 1 :(得分:0)

你需要第二次CTE吗?为什么不:

;with base_cte as
(
    select
    from
    where
)

select *
from base_cte
join
where