0

この質問は、前の質問Simulation of CONNECT BY PRIOR of ORACLE in SQL SERVERの拡張です。

そのことから、SQL Server で CONNECT BY を実行する方法を知っています。Oracleでは、サブクエリで簡単に接続を使用できます。

したがって、Oracle では select * from t1 where t1.id in (select from connect by query) を実行できます。

それはSQLサーバーでも可能ですか?どのように?

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 に答える