我试图了解如何使用WITH
条款和目的WITH
clause.
我所明白的是,WITH
子句是普通子查询的替代品。
谁能用一个小例子详细向我解释这一点?
SQL WITH 子句是 Oracle 在 Oracle 9i 第 2 版数据库中引入的。 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 语句示例 http://docs.oracle.com/cd/B19306_01/server.102/b14200/img_text/subquery_factoring_clause.htm。其余查询遵循简单和复杂 SQL SELECT 查询的标准格式。
了解更多信息:http://www.brighthub.com/internet/web-development/articles/91893.aspx http://www.brighthub.com/internet/web-development/articles/91893.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)