如何创建使用另一个CTE作为进一步限制的数据的CTE? [英] How to create CTE which uses another CTE as the data to further limit?

查看:14
本文介绍了如何创建使用另一个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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆