0

次のようにサブクエリをエイリアシングするために、ここで数回 Oracle の WITH 句について言及しているのを見てきました。

WITH myData AS (SELECT id, text FROM SomeTable)
SELECT myData from SomeOtherTable

これをサポートしている SQL Server のバージョンはありますか? そうでない場合、そうしない特別な理由はありますか? パフォーマンス?誤った使用の可能性はありますか?

4

2 に答える 2

5

SQL Server 2005 以降。

これらを効果的に積み重ねることができることを追加したかった:

WITH A AS (
    SELECT * FROM X
), B AS (
    SELECT * FROM A
), C AS (
    SELECT * FROM B
)
SELECT * FROM C

あなたもできる:

WITH A AS (
), B AS (
)
SELECT * FROM A INNER JOIN B ON whatever

Also note that WITH must be the first keyword in a statement, so you often see it written as:

;WITH A AS (
)

Which basically terminates the previous statement (semicolons are kind of optional in T-SQL)

于 2010-07-08T03:50:30.133 に答える
4

はい、SQL2005 と SQL2008 の両方がこれをサポートしています。これらは共通テーブル式と呼ばれます。

于 2010-07-08T00:43:22.083 に答える