可能な重複:
CTEとSubQueryの違い
私はWITH
句の使い方とWITH
句の目的を理解しようとしていました。
私が理解したのは、WITH
節は通常のサブクエリの代わりになったということだけでした。
誰かが細かい例で私にこれを説明できますか?
SQL WITH句は、Oracle 9iリリース2データベースでOracleによって導入されました。 SQL WITH句を使用すると、サブクエリブロックに名前(サブクエリリファクタリングとも呼ばれるプロセス)を付けることができます。これは、メインSQLクエリ内の複数の場所で参照できます。サブクエリに割り当てられた名前は、インラインビューまたはテーブルのように扱われます。 SQL WITH句は基本的に通常のサブクエリの代わりになるドロップインです。
SQLのWITH句の構文
以下は、単一の副照会別名を使用している場合のSQL WITH文節の構文です。
WITH <alias_name> AS (sql_subquery_statement)
SELECT column_list FROM <alias_name>[,table_name]
[WHERE <join_condition>]
複数のサブクエリエイリアスを使用する場合、構文は次のとおりです。
WITH <alias_name_A> AS (sql_subquery_statement),
<alias_name_B> AS(sql_subquery_statement_from_alias_name_A
or sql_subquery_statement )
SELECT <column_list>
FROM <alias_name_A>, <alias_name_B> [,table_names]
[WHERE <join_condition>]
上記の構文ドキュメントでは、alias_name
の出現箇所は、AS句の後にサブクエリに付ける意味のある名前です。各サブクエリはカンマで区切る必要があります WITHステートメントの例 残りのクエリは、単純で複雑なSQL SELECTクエリの標準形式に従います。
詳細情報: http://www.brighthub.com/internet/web-development/articles/91893.aspx