- 浏览: 1318556 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (351)
- Java General (37)
- .net General (2)
- Linux Toy (55)
- Oracle (81)
- Mysql (11)
- Programer Career (12)
- Oh, my living ! (2)
- Shell Script (8)
- Web Service (0)
- Linux Server (22)
- Php/Python/Perl (3P) (2)
- Javascript General (5)
- Saleforce Apex Dev (2)
- Web General (5)
- Xen & VM tech. (17)
- PSP (13)
- OpenSolaris (34)
- php (1)
- RAI/flex/action script (16)
- asterisk/CTI (7)
- 交互设计 (6)
- English (3)
- Lucene (1)
最新评论
-
GuolinLee:
markmark
JVM调优总结 -Xms -Xmx -Xmn -Xss -
di1984HIT:
写的太好啊。
JVM调优总结 -Xms -Xmx -Xmn -Xss -
javajdbc:
javajdbc 写道
JVM调优总结 -Xms -Xmx -Xmn -Xss -
javajdbc:
...
JVM调优总结 -Xms -Xmx -Xmn -Xss -
alvin198761:
非常感谢,国外的被封杀了,你这里还有一份
How to Convert An Image-Based Guest To An LVM-Based Guest
WITH a AS (SELECT * FROM bd_member WHERE ROWNUM<10),
b AS (SELECT * FROM tp_trade_card)
select A.MEMBER_NAME,
B.CARD_NO
from A,
B
where A.BD_MEMBER_ID = B.BD_MEMBER_ID
Google Search: Oracle +with 视图就可以得到结果...
Oracle WITH clause
Oracle Tips by Burleson Consulting |
The SQL “WITH clause” is very similar to the use of Global temporary tables (GTT), a technique that is often used to improve query speed for complex subqueries. Here are some important notes about the Oracle “WITH clause”:
• The SQL “WITH clause” only works on Oracle 9i release 2 and beyond.
• Formally, the “WITH clause” is called subquery factoring
• The SQL “WITH clause” is used when a subquery is executed multiple times
• Also useful for recursive queries (SQL-99, but not Oracle SQL)
To keep it simple, the following example only references the aggregations once, where the SQL “WITH clause” is normally used when an aggregation is referenced multiple times in a query.
The SQL-99 “WITH clause” is very confusing at first because the SQL statement does not begin with the word SELECT. Instead, we use the “WITH clause” to start our SQL query, defining the aggregations, which can then be named in the main query as if they were “real” tables:
WITH
subquery_name
AS
(the aggregation SQL statement)
SELECT
(query naming subquery_name);
Retuning to our oversimplified example, let’s replace the temporary tables with the SQL “WITH clause”:
WITH
sum_sales AS
select /*+ materialize */
sum(quantity) all_sales from stores
number_stores AS
select /*+ materialize */
count(*) nbr_stores from stores
sales_by_store AS
select /*+ materialize */
store_name, sum(quantity) store_sales from
store natural join sales
SELECT
store_name
FROM
store,
sum_sales,
number_stores,
sales_by_store
where
store_sales > (all_sales / nbr_stores)
;
Note the use of the Oracle undocumented “materialize” hint in the “WITH clause”. The Oracle materialize hint is used to ensure that the Oracle cost-based optimizer materializes the temporary tables that are created inside the “WITH” clause. This is not necessary in Oracle10g, but it helps ensure that the tables are only created one time.
It should be noted that the “WITH clause” does not yet fully-functional within Oracle SQL and it does not yet support the use of “WITH clause” replacement for “CONNECT BY” when performing recursive queries.
To see how the “WITH clause” is used in ANSI SQL-99 syntax, here is an excerpt from Jonathan Gennick’s great work “Understanding the WITH Clause” showing the use of the SQL-99 “WITH clause” to traverse a recursive bill-of-materials hierarchy
The
SQL-99 “WITH clause” is very confusing at first because the SQL
statement does not begin with the word SELECT. Instead, we use the
“WITH clause” to start our SQL query, defining the aggregations, which
can then be named in the main query as if they were “real” tables:
WITH
subquery_name
AS
(the aggregation SQL statement)
SELECT
(query naming subquery_name);
Retuning to our oversimplified example, let’s replace the temporary
tables with the SQL “WITH” clause”:
发表评论
-
About Dedicated and Shared Server Processes
2010-11-29 15:46 1549一句话, shared server 就是为了省 SGA. ... -
oracle11GR2上建立一个新用户的过程,同时更改字符集.
2010-11-15 16:21 2915写道 SQL> create user mygmccr ... -
comment on table and column
2009-11-20 16:16 3358comment [Oracle SQL] ... -
解决ASM无法启动问题
2009-11-07 15:11 7109启动报错如下所 ... -
在Oracle中实现可扩展的多级编目结构
2009-10-23 13:49 13782009-10-16 ... -
用户帐号解锁
2009-10-21 08:06 1278SQL> alter user scott accoun ... -
按上下键调出 sqlplus 中的历史命令
2009-10-21 07:50 1983在sqlplus中不能按上下键不能显示出之前的命令, 也 ... -
简单的oracle物化视图
2009-09-28 22:29 1252物化视图是一种特殊的物理表,“物化”(Mate ... -
PL/SQL 总结(4)
2009-09-19 17:40 1064存储过程 create or replace PROCEDU ... -
PL/SQL 总结(3)
2009-09-19 17:40 1044使用游标 1)显示游标: CURSOR name_curs ... -
PL/SQL 总结(2)
2009-09-19 17:39 1077)将select 嵌入到PL/SQL中 ... -
PL/SQL 总结(1)
2009-09-19 17:38 1269我们开始学习PL/SQL PL/SQ ... -
Oracle 中的 Merge 语句
2008-07-29 15:45 1377Merge Statement Demo MERGE & ... -
SQL*Plus FAQ
2008-07-24 10:04 2167SQL*Pl ... -
Oracle Default Listener
2008-07-15 15:41 2280042 第23题 关于动态注册监听器 23.Your data ... -
自动安装 Oracle 数据库 10g 和 Red Hat Enterprise Linux
2008-07-13 09:52 2314自动安装 Oracle 数据库 10g 和 Red Hat ... -
在 Linux x86 上安装 Oracle 数据库 10g
2008-07-13 09:46 1343... -
Vmware server1.0 + Linux As4 + Oracle 10g RAC
2008-07-05 15:19 3242Vmware server1.0 + Linux A ... -
How To Set Up Oracle ASM on Ubuntu Gutsy Gibbon
2008-07-05 08:51 1961How To Set Up Oracle ASM on Ubu ... -
Installing Oracle10g R2 RAC on vmware suse
2008-07-04 10:47 4913Installing Oracle10g R2 RAC Par ...
相关推荐
### Oracle触发器语法要点 #### 一、触发器概述 Oracle触发器是一种存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以用于实施复杂的业务规则、数据完整性检查或者自动生成...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其语法丰富且强大,尤其在处理复杂数据操作时表现出色。这个“oracle语法.rar”压缩包包含了关于Oracle数据库的一些关键知识点,如递归查询、内置函数、...
- Oracle 的 `START WITH U CONNECT BY` 用于创建层次查询,SQL Server 可以通过递归公共表表达式(CTE)或存储过程实现类似功能。 - Oracle 支持 `INTERSECT` 和 `MINUS` 集合运算符,而 SQL Server 用 `EXISTS` 和...
**语法示例**: ```sql RANK() OVER (PARTITION BY v.FAULT_ID ORDER BY v.dealTime DESC, v.OPERATE_SEQ DESC) ``` 这个表达式的意思是:按照 `FAULT_ID` 分组,并在每个分组内按 `dealTime` 和 `OPERATE_SEQ` 降序...
在提供的压缩包`Oracle函数大全.chm`中,你将找到关于Oracle所有内置函数的详细信息,包括每个函数的作用、语法、返回值类型和使用示例。而`oracle存储过程.chm`则涵盖了存储过程的创建、调用、修改和删除等相关知识...
### Oracle PL/SQL 语法详细手册知识点概览 #### 一、CREATE TABLE 语句 在 Oracle 数据库中,`CREATE TABLE` 语句是最基本也是最重要的 SQL 命令之一,用于创建一个新的表。表作为数据库的核心组成部分,用于存储...
### Oracle授权语法详解 在Oracle数据库管理中,权限管理是一项重要的功能,它允许数据库管理员(DBA)控制用户对数据库对象的访问级别。本文将详细解释Oracle中的授权语法,并通过具体的例子来阐述如何进行不同类型...
根据提供的文件信息,本文将对Oracle数据库中的常用语法进行详细解析。主要涵盖用户管理、表空间操作、表结构创建与修改、注释添加以及序列管理等核心知识点。 ### 用户管理 1. **解锁用户账户**:若用户账户被...
### Trigger语法详解 #### 一、引言 在数据库领域,触发器(Trigger)是一种特殊类型的存储过程,它被设计用于响应对特定表的数据修改操作(如INSERT、UPDATE或DELETE)。触发器能够在这些操作发生时自动执行,...
本文将深入探讨Oracle数据库的一些基本语法,包括表、视图、同义词、存储过程、函数、触发器、游标以及序列的创建与使用,旨在为初学者提供一个全面的入门指南。 ### 表(Table) 表是数据库中最基本的数据存储单元...
通过以上示例可以看出,`START WITH...CONNECT BY`语法非常强大,它不仅能够帮助我们高效地进行树状结构数据的查询,还可以轻松构建出符合业务需求的层级视图。此外,结合其他函数(如`LPAD`和`SYS_CONNECT_BY_PATH`...
在数据库管理领域,ORACLE和SQL SERVER是两个广泛使用的数据库管理系统,它们在语法上有许多相似之处,但也存在一些显著的差异。以下是对标题和描述中所述知识点的详细说明: 1. **递归查询**: - 在SQL SERVER中...
### Oracle Start With.Connect By Prior 子句实现递归查询 #### 概述 在Oracle数据库中,`Start With.Connect By Prior`子句是执行递归查询的一种强大工具,主要用于处理层次结构数据。这类数据通常存在于组织...
Oracle提供了一些特性的查询语法来处理这些层级数据,包括层次查询(Hierarchical Query)和WITH函数(Common Table Expression,CTE)。下面我们将详细讨论这两个概念以及它们的使用示例。 首先,我们来看层次查询...
- 注意点: Oracle使用 `START WITH` 和 `CONNECT BY` 进行层次查询,而DB2使用 `WITH RECURSIVE` 子句。 #### 9. 打印输出信息 - **Oracle** 和 **DB2** 都支持打印输出信息。 - Oracle示例: ```sql DBMS_...
当查询中多次用到某一部分时,可以用Oracle with语句创建一个公共临时表。因为子查询在内存临时表中,避免了重复解析,所以执行效率会提高不少。临时表在一次查询结束自动清除。 一般语法格式: 代码如下:with ...
3. “The provider is not compatible with the version of Oracle client”:检查.NET应用程序与Oracle客户端版本的兼容性,确保两者匹配。 总的来说,Oracle.DataAccess.dll为.NET开发者提供了一种强大的工具,...
#### 创建序列的语法示例 ```sql CREATE SEQUENCE 序列名 INCREMENT BY 增量值 START WITH 起始值 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 不循环 NOCACHE -- 不缓存 ``` - **INCREMENT BY**: 指定序列每次生成的...