cur*_*Boy 15 sql common-table-expression
我在这里搜索过这个问题,但找不到它,如果我们已经在网站上有它,请重定向我.
我正在寻找一种方法来创建CTE,它使用另一个CTE作为进一步限制的数据.我有一个CTE,它为我创建了一个报告,但我希望使用现有的CTE以另一个输入来缩小此报告.
我希望我的问题很明确.
Dav*_*haw 25
您可以将2个(或更多)CTE链接在一起.
例如
with ObjectsWithA as
(
select * from sys.objects
where name like '%A%'
),
ObjectsWithALessThan100 as
(
select * from ObjectsWithA
where object_id < 100
)
select * from ObjectsWithALessThan100;
Run Code Online (Sandbox Code Playgroud)
Gor*_*off 12
CTE可以参考以前的CTE:
with report as (
<your query here>
),
reportLimited as (
select *
from report
where foo = @bar
)
select *
from reportLimited
Run Code Online (Sandbox Code Playgroud)
唯一的规则是引用必须是顺序的.没有前瞻性参考
当然,只需直接参考CTE:
WITH Source As
(
SELECT * FROM AllData
),
Filtered AS
(
SELECT * FROM Source WHERE ID = 4
)
SELECT * FROM Filtered
Run Code Online (Sandbox Code Playgroud)