这个问题是对上一个问题Simulation of CONNECT BY PRIOR of ORACLE in SQL SERVER的扩展。
由此我知道如何在 SQL Server 中进行 CONNECT BY。在 Oracle 中,您可以在子查询中轻松使用连接。
因此,在 Oracle 中,我可以选择 * from t1 where t1.id in(通过查询从连接中选择)。
在 SQL Server 中也可以吗?如何?
这个问题是对上一个问题Simulation of CONNECT BY PRIOR of ORACLE in SQL SERVER的扩展。
由此我知道如何在 SQL Server 中进行 CONNECT BY。在 Oracle 中,您可以在子查询中轻松使用连接。
因此,在 Oracle 中,我可以选择 * from t1 where t1.id in(通过查询从连接中选择)。
在 SQL Server 中也可以吗?如何?
在 SQL Server(以及其他数据库)中,您将需要使用递归公用表表达式,例如:
with some_tree as (
select ...
union all
select ...
)
select *
from t1
where t1.id in (select some_id from some_tree);
由于版本 11.2 Oracle 还支持递归公用表表达式(因此您可以在两个数据库上使用相同的语法)