0

这个问题是对上一个问题Simulation of CONNECT BY PRIOR of ORACLE in SQL SERVER的扩展。

由此我知道如何在 SQL Server 中进行 CONNECT BY。在 Oracle 中,您可以在子查询中轻松使用连接。

因此,在 Oracle 中,我可以选择 * from t1 where t1.id in(通过查询从连接中选择)。

在 SQL Server 中也可以吗?如何?

4

1 回答 1

1

在 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 还支持递归公用表表达式(因此您可以在两个数据库上使用相同的语法)

于 2012-04-11T07:53:10.197 回答