WITH
条項の使い方と目的を理解しようとしていましたWITH
。
私が理解したのは、このWITH
句は通常のサブクエリの代わりであるということだけでした。
誰かがこれを小さな例で詳しく説明できますか?
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 句の後にサブクエリに付ける意味のある名前です。各サブクエリは、コンマExample for WITH statementで区切る必要があります。残りのクエリは、単純および複雑な SQL SELECT クエリの標準形式に従います。
詳細情報: http://www.brighthub.com/internet/web-development/articles/91893.aspx
これはここで完全に回答されています。
SELECT に関する Oracle のドキュメントを参照して、サブクエリのファクタリングがどのように機能するかを確認し、Mark の例を参照してください。
WITH employee AS (SELECT * FROM Employees)
SELECT * FROM employee WHERE ID < 20
UNION ALL
SELECT * FROM employee WHERE Sex = 'M'