本文介绍了如何创建使用另一个CTE作为进一步限制的数据的CTE?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经在这里搜索了这个问题,但找不到它,如果我们已经在网站上有它,请重定向我。
我正在寻找一种方法来创建CTE,使用另一个CTE作为进一步限制的数据。我有一个CTE可以为我创建一个报告,但我想使用现有的CTE用另一个输入来缩小此报告的范围。
我希望我的问题清楚了。
推荐答案
您可以将两个(或多个)CTE链接在一起。
例如
with ObjectsWithA as
(
select * from sys.objects
where name like '%A%'
),
ObjectsWithALessThan100 as
(
select * from ObjectsWithA
where object_id < 100
)
select * from ObjectsWithALessThan100;
或相同的示例,拼写出更多名称/别名:
with ObjectsWithA (MyObjectId , MyObjectName) as
(
select object_id as MyObjIdAlias , name as MyNameAlias
from sys.objects
where name like '%A%'
),
ObjectsWithALessThan100 as
(
select * from ObjectsWithA theOtherCte
where theOtherCte.MyObjectId < 100
)
select lessThan100Alias.MyObjectId , lessThan100Alias.MyObjectName
from ObjectsWithALessThan100 lessThan100Alias
order by lessThan100Alias.MyObjectName;
这篇关于如何创建使用另一个CTE作为进一步限制的数据的CTE?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!