`

oracle with as用法

 
阅读更多
with as语法

–针对一个别名
with tmp as (select * from tb_name)

–针对多个别名
with
   tmp as (select * from tb_name),
   tmp2 as (select * from tb_name2),
   tmp3 as (select * from tb_name3),
   …


--相当于建了个e临时表
with e as (select * from scott.emp e where e.empno=7499)
select * from e;
 
--相当于建了e、d临时表
with
     e as (select * from scott.emp),
     d as (select * from scott.dept)
select * from e, d where e.deptno = d.deptno;


其实就是把一大堆重复用到的sql语句放在with as里面,取一个别名,后面的查询就可以用它,这样对于大批量的sql语句起到一个优化的作用,而且清楚明了。

with as优点
增加了sql的易读性,如果构造了多个子查询,结构会更清晰;
更重要的是:“一次分析,多次使用”,这也是为什么会提供性能的地方,达到了“少读”的目标










分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    oracle数据库with_as用法

    详细介绍oracle数据库中新出的with_as语法以及相关使用

    oracle数据库startwith用法

    ### Oracle数据库中的START WITH 和 CONNECT BY 用法详解 在Oracle数据库中,处理层次结构数据时,`START WITH` 和 `CONNECT BY` 是非常有用的两个关键字。这些关键字可以帮助我们在查询时构建出树形或者层级结构的...

    Oracle分组函数之ROLLUP的基本用法

    本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...

    oracle 下WITH CHECK OPTION用法

    Oracle 下 WITH CHECK OPTION 用法 WITH CHECK OPTION 是 Oracle 中的一种视图定义选项,它可以确保数据库中正在修改的数据的完整性。该选项通常用在视图定义中,以确保任何引用该视图的 INSERT 或 UPDATE 语句都...

    树状数据库表:Oracle中start with...connect by prior子句用法

    `START WITH...CONNECT BY PRIOR`是Oracle SQL中的一个特性,用于处理具有层级关系的数据。这个子句允许我们遍历和查询具有父子关系的数据,例如部门和其下属子部门,或者员工和他们的上级经理。 1. **START WITH...

    Oracle分析函数基本概念和语法总结及Regexp_***用法

    SELECT ename, REGEXP_LIKE(ename, '^[0-9]') AS starts_with_number FROM emp; ``` 这个查询将返回一个标志,表明员工名字是否以数字开始。 了解并熟练掌握Oracle分析函数和正则表达式函数,能显著提高在数据库...

    Oracle日期时间用法.pdf

    SELECT extract(month FROM sysdate) AS "This Month", extract(year FROM add_months(sysdate, 36)) AS "Years" FROM dual; ``` 这将分别提取当前月和当前日期36个月后对应的年份。 以上就是Oracle中常用的日期...

    oracle while的用法示例分享

    代码如下:with alias_name1 as (subquery1), alias_name2 as (subQuery2), …… alias_nameN as (subQueryN) select col1,col2…… col3from alias_name1,alias_name2……,alias_nameN Oracle with语句的...

    ORACLE 列转行 DECODE函数用法

    WITH sales_data AS ( SELECT product_id, TO_CHAR(sale_date, 'YYYY-MM') AS sale_month, sale_amount FROM sales ) SELECT * FROM sales_data PIVOT ( SUM(sale_amount) FOR product_id IN (DECODE(product_...

    oracle中distinct的用法详解

    WITH ranked_data AS ( SELECT name, code, id, ROW_NUMBER() OVER (PARTITION BY name, code ORDER BY id DESC) AS rn FROM table ) SELECT name, code, id FROM ranked_data WHERE rn = 1; ``` 总的来说,`...

    Oracle拆分字符串,字符串分割的函数

    WITH data AS (SELECT 'apple,banana,orange' str FROM dual) SELECT regexp_substr(str, '[^,]+', 1, level) fruit FROM data CONNECT BY level (regexp_replace(str, '[^,]+')) + 1; ``` 以上就是Oracle...

    select into和insert into select使用方法

    INNER JOIN Sales.SalesPerson AS sp ON e.EmployeeID = sp.SalesPersonID INNER JOIN Person.Contact AS c ON e.ContactID = c.ContactID WHERE e.EmployeeID LIKE '2%' ORDER BY e.EmployeeID, c.LastName; GO ```...

    Oracle高级SQL培训与讲解

    - 掌握WITH子句的基本用法及特点。 - 了解WITH子句如何优化查询性能。 - 孶明WITH子句的常见应用场景。 #### WITH子句概述 在Oracle数据库中,WITH子句是一种非常有用的特性,它允许用户定义一个临时的结果集(通常...

    oracle与mysql的区别

    例如:CREATE SEQUENCE 序列号的名称(最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 3. 单引号的处理 MySQL 里可以用双引号包起字符串,Oracle 里只可以用单引号包起字符串。...

    oracle常用分析函数与聚合函数的用法

    WITH lcy AS ( SELECT regexp_substr('10,20,30,30,50,60,80,80,90,100','[^,]+',1,level) score FROM dual CONNECT BY level ) SELECT score, RANK() OVER (ORDER BY TO_NUMBER(score) DESC) "rank", DENSE_...

    Oracle 11g Functions 常用函数

    WITH t AS (SELECT 1 id FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual) SELECT CARDINALITY(ARRAY[SELECT id FROM t]) cnt FROM dual; ``` **结果**: ``` CNT ---- 3 ``` #### CAST **...

    韩顺平oracle学习笔记

    韩顺平oracle学习笔记 第0讲:如何学习oracle 一、如何学习oracle Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的...

    Oracle OCA 1Z0-051认证题库

    CREATE VIEW v3 AS SELECT * FROM SALES WHERE cust_id = 2034 WITH CHECK OPTION; CREATE VIEW v1 AS SELECT * FROM SALES WHERE time_id * 365 WITH CHECK OPTION; CREATE VIEW v2 AS SELECT prod_id, cust_id, ...

Global site tag (gtag.js) - Google Analytics