我在这里搜索了此问题,但找不到它,如果我们已经在网站上找到它,请重定向我。
我正在寻找一种创建CTE的方法,该方法使用另一个CTE作为数据来进一步限制。我有一个CTE,可以为我创建一个报告,但是我想使用现有CTE通过另一个输入来缩小此报告的范围。
希望我的问题清楚。
最佳答案
您可以将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;
...
以下是同一示例,其中包含更多的“拼写”名称/别名”
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;
关于sql - 如何创建使用另一个CTE作为数据进一步限制的CTE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032293/