oracle中的with的用法,oracle中with子句的用法(转)

语法:

WITH query_name AS (subquery)

[, query_name AS (subquery) ]...

使用在主select关键字前,oracle将其当做一个内联视图或者临时表使用。

例子:

1.最简单的使用方法:

如查询部门名称包含“A”的所有员工信息

--with clause

with a as

(select deptno from dept where dname like '%A%')

select * from emp where deptno in (select * from a);

with a as

(select deptno from dept where dname like '%A%'),--a结果集

a2 as(select * from a where deptno>20)--a1结果集直接从a中筛选

select * from emp where deptno in (select * from a2);

2.多层同级只能用一个with,并且后面的结果集可以使用前面的结果集:

查询部门名称包含“A”并且部门编号大于20的所有员工信息

with a as

(select deptno from dept where dname like '%A%'),--a结果集

a2 as(select * from a where deptno>20)--a1结果集直接从a中筛选

select * from emp where deptno in (select * from a2);

3.不同级查询可以使用多个with:

查询部门名称包含“A”并且部门编号大于20的所有员工信息的另外一种实现方式如下

with a as

(select deptno from dept where dname like '%A%')--a结果集

select * from emp where deptno in (--括号内层作为子查询,为第二级

with a2 as(select * from a where deptno>20)--a1结果集直接从a中筛选

select * from a2

);

使用场景:

那什么情况下能使用到with子句呢?以下我就举几个简单的例子,简单的说明以下:

1.我想测试一句sql,而我不想专门建立一个测试表:

我想测试成绩大于90的学生,我不想建立学生表,可以用到with子句

with stu as(

select '张娜' sname,99 score from dual union

select '王杰' ,35 from dual union

select '宋丽' ,85 from dual union

select '陈晓' ,73 from dual union

select '李元' ,100 from dual

)--with 组成一个临时的结果集,存放在用户的临时表空间

select * from stu where score>90

2.         当一个sql重复用到某个相同的结果集作为子查询:

--查询销售部工资>1500或者销售部工资小于1000的员工

select * from emp where deptno=(select deptno from dept where dname ='SALES') and sal >1500

union all

select * from emp where deptno=(select deptno from dept where dname ='SALES') and sal <1000

--以上sql select deptno from dept where dname ='SALES'需要执行两次,影响效率

--可以使用with优化一下

with salno as(select deptno from dept where dname ='SALES')

select * from emp where deptno=(select * from salno) and sal >1500

union all

select * from emp where deptno=(select * from salno) and sal <1000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟一个排队系统

现在有一个数据源&#xff0c;有两种状态&#xff08;ON OFF&#xff09;&#xff0c;ON的持续时间服从均值为T_on的指数分布&#xff0c;OFF的持续时间服从均值为T_off的指数分布&#xff0c;源只在ON的时候产生数据包&#xff0c;服从均值为λ的指数分布 模拟一个排队系统 每…

stl中copy()函数_std :: copy_if()函数以及C ++ STL中的示例

stl中copy()函数C STL std :: copy_if()函数 (C STL std::copy_if() function) copy_if() function is a library function of algorithm header, it is used to copy the elements of a container, it copies the certain elements (which satisfy the given condition) of a…

C++语法:求vector中的最大值及其位置

代码&#xff1a; #include <iostream> #include <vector> #include <algorithm> using namespace std;int main(){vector<int> a { 2,4,6,7,1,0,8,9,6,3,2 };auto maxPosition max_element(a.begin(), a.end());cout << *maxPosition <&l…

二、织物具备超级防水效果的条件?

织物具备超级防水效果的条件? 收集资料阶段 莲花效应(Lotus Effect),指莲叶表面具有超疏水(superhydrophobicity)以及自洁(self-cleaning)的特性。 由于莲叶具有疏水、不吸水的表面,落在叶面上的雨水会因表面张力的作用形成水珠,换言之,水与叶面的接触角(contacta…

C#编码简单性之函数篇(如何编写简短的C#代码,随时更新)

作者&#xff1a;陈勇出处&#xff1a;blog.csdn.net/cheny_com这是编码简单性系列中的其中一篇&#xff0c;之前几篇包括代码篇和语义篇。因为要积累案例&#xff0c;会随时更新。之前提到&#xff1a;编码简单性的“心法”就是&#xff1a;只要屏幕上有任何两部分代码看上去相…

R学习笔记(1):R是什么

本文最新版已更新至http://thinkinside.tk/2013/05/03/r_notes_1_what.html 在学习量化投资的时候&#xff0c;我发现了R&#xff08;www.r-project.org&#xff09;。R到底是什么呢&#xff1f;在开始之前&#xff0c;先看看R的神奇之处。 1. R初窥 从CRAN&#xff08;The Co…

oracle网卡,Oracle_bond网卡配置

***************************loyu*******************************************************双网卡创建bond虚拟网卡实验*************************cat > /etc/sysconfig/network-scripts/ifcfg-bond0 << EofDEVICEbond0BOOTPROTOstaticONBOOTyesIPADDR172.16.116.60N…

Python | 展示一个break语句示例

break is a keyword in python just like another programming language and it is used to break the execution of loop statement. 就像另一种编程语言一样&#xff0c; break是python中的关键字&#xff0c;用于中断loop语句的执行。 In the given example, loop is runni…

数字图像处理知识总结

一&#xff1a;基本概念 数字图像&#xff1a;指由被称作像素的小块区域组成的二维矩阵。将物理图像行列划分后&#xff0c;每个小块区域称为像素&#xff08;pixel&#xff09;。每个像素包括两个属性&#xff1a;位置和灰度。图像数字化一般分为采样、量化与编码三个步骤。数…

三、“涤纶纤维和棉纤维两组分纤维在涤/棉混纺织物燃烧过程中有着明显的物理相互作用和化学相互作用”,解释这两种作用。

“涤纶纤维和棉纤维两组分纤维在涤/棉混纺织物燃烧过程中有着明显的物理相互作用和化学相互作用”,解释这两种作用。 收集资料阶段 棉纤维燃烧后炭化,而涤纶燃烧时熔融滴落,由于棉纤维成为支持体,可使熔融纤维聚集,并阻止其滴落,使熔融纤维燃烧更加剧烈,即所谓"支架效应…

关于性能测试的通俗解释

关于性能测试的通俗解释: http://www.docin.com/p-645879730.html 转载于:https://www.cnblogs.com/preftest/archive/2013/05/03/3057231.html

oracle marley,滚石杂志500大专辑,对欧美音乐感兴趣的可以找来听听。

滚石杂志于2003年11月评选出的滚石杂志五百大专辑。值得一提的是&#xff0c;披头士乐队占据了前五中的三席&#xff0c;前五十中的7席&#xff0c;正式出版的专辑几乎全部入选前五百。排名 演唱者 专辑001 披头士乐队(The Beatles) Sgt. Peppers Lonely Hearts Club Band002 海…

ci中使用smarty

<p>d</p> <?php defined(BASEPATH) or die(Access restricted!);/** 作者&#xff1a;晋勇*/require(APPPATH.libraries/smarty/Smarty.class.php);classCismarty extendsSmarty{public$exttpl;public$dir;public$layoutlayout/main;/** * 构造函数 * * access…

kinect中psi是什么_PSI的完整形式是什么?

kinect中psi是什么PSI&#xff1a;每平方英寸磅/国际人口服务 (PSI: Pound per Square Inch / Population Services International) 1)PSI&#xff1a;每平方英寸磅 (1) PSI: Pound per Square Inch) PSI is an abbreviation of Pound per Square Inch. Pound per Square Inch …

jupyter notebook指定工作目录

【1】打开Anaconda Navigator 打开Anaconda Navigator&#xff0c;点击左侧Environments&#xff0c;点击base(root)->open Terminal 【2】输入指令jupyter notebook --generate-config 按下回车键&#xff0c;弹出config所在位置。 以VS Code打开文件 【3】修改第26…

四、纤维素纤维使用P-N系阻燃剂协同作用的原理?

纤维素纤维使用P-N系阻燃剂协同作用的原理? 收集资料阶段 某些含氮、磷化合物可以增强化合物的阻燃性,原因就是磷、氮在反应过程中形成含 N-P 键的中间体,可以改善羰基反应活性和磷酰化速率,进而提高成炭率;另一个重要的原因是氮化合物可以延缓凝聚相中含磷化合物的会挥发…

oracle tns 连接关闭,ORA-12537 TNS:连接关闭

今天遇到&#xff1a;ORA-12537 TNS&#xff1a;连接关闭&#xff0c;监听正常&#xff0c;集群正常&#xff0c;数据库正常&#xff0c;查了一下才发现问题。LISTENER日志报错TNS-12546: TNS:permission deniedTNS-12560: TNS:protocol adapter errorTNS-00516: Permission de…

多模态大模型:关于RLHF那些事儿

Overview 多模态大模型关于RLHF的代表性文章一、LLaVA-RLHF二、RLHF-V三、SILKIE多模态大模型关于RLHF的代表性文章 一、LLaVA-RLHF 题目: ALIGNING LARGE MULTIMODAL MODELS WITH FACTUALLY AUGMENTED RLHF 机构:UC伯克利 论文: https://arxiv.org/pdf/2309.14525.pdf 代码…

c# 整数类型转byte_C#中数据类型的整数类型

c# 整数类型转byteHere is the list of the built-in integral types of data types in C#, sbyte, byte, char, short, ushort, int, uint, long and ulong 这是C&#xff03;&#xff0c; sbyte &#xff0c; byte &#xff0c; char &#xff0c; short &#xff0c; ushort…

COM+组件注册方法

COM组件注册方法 有两种方式注册组件&#xff1a;一种是调用regsvr32.exe&#xff1a;例如我们运行regsvr32.exe c:\test.dll来注册位于C:盘根目录下的test.dll。另外一种是在MTS&#xff08;微软事务服务器&#xff09;中注册。MTS是值得推荐的&#xff0c;因为它具有下列优点…