Oracle中 oracle中any,some,all用法

* Some在此表示满足其中一个的意义,是用or串起来的比较从句。

* Any也表示满足其中一个的意义,也是用or串起来的比较从句,区别是any一般用在非“=”的比较关系中,这也很好理解,英文中的否定句中使用any肯定句中使用some,这一点是一样的。

* All则表示满足其其中所有的查询结果的含义,使用and串起来的比较从句。

Any

带【any】的嵌套查询和【some】的嵌套查询功能是一样的。早期的SQL仅仅允许使用【any】,后来的版本为了和英语的【any】相区分,引入了【some】,同时还保留了【any】关键词。

any:

select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal >any(select sal from scott.emp where     job=‘MANAGER‘);

带any的查询过程等价于两步的执行过程。

(1)执行“select sal from scott.emp where job=‘MANAGER‘”

select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal >2975 or sal>2850 or sal>2450;

some

some:

select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal =some(select sal from scott.emp where     job=‘MANAGER‘);

带some的嵌套查询与any的步骤相同。

(1)子查询,执行“select sal from scott.emp where job=‘MANAGER‘”,其结果如图4.22所示。

(2)父查询执行下列语句。

―――――――――――――――――――――――――――――――――――――

select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal =2975 or sal=2850 or sal=2450;

all

all 是查询还可以是子查询

如:

select name from edit

其中name前省略了all.

name前可以加ALL|DISTINCT

all是所有记录.

distinct是不重复的。

时间: 2024-10-24 11:21:40

Oracle中 oracle中any,some,all用法的相关文章

oracle中的exists 和not exists 用法详解

oracle中的exists 和not exists 用法详解 有两个简单例子,以说明 “exists”和“in”的效率问题 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高. 2) select * from T1 where T1.a in (select T2.a from T2) ; T1数据量非常大而T2数据量小时,T1>

ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

Oracle 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内是连续且唯一的). 举例: SQL> DESC T1; Name                                           Null?    Type----------------------

oracle 中 Start with...connect by 的用法(递归查询)

阿里电面问到了相关的知识,在网上找到这方面的文章. 这几个关键字是查询递归数据的,形成一个树状结构.目前只有oracle支持,其他数据都要结合存储过程实现 语法: select * from some_table [where 条件1] connect by [条件2] start with [条件3]; 其中 connect by 与 start with 语句摆放的先后顺序不影响查询的结果,[where 条件1]可以不需要.  [where 条件1].[条件2].[条件3]各自作用的范围都不

oracle中的exists 和not exists 用法 in与exists语句的效率问题

博文来源(oracle中的exists 和not exists 用法):http://chenshuai365-163-com.iteye.com/blog/1003247 博文来源(  in与exists语句的效率问题):http://www.cnblogs.com/iceword/archive/2011/02/15/1955337.html (一) exists (sql 返回结果集为真) not exists (sql 不返回结果集为真) 如下: 表A ID NAME 1    A1 2

C#中oracle数据库的连接方法

C#中oracle数据库的连接方法 一.关于数据库的操作 1.数据库连接      有2种:      第一种:古老的方法(较为死板,不利于灵活操作),即用OracleConnection的类来连接              string mysqlstr ="user id = xal;data source = xal;password = xal";              OracleConnection mycnn = new OracleConnection(mysqls

应用Oracle(Linux中的安装)

Linux中安装Oracle,不同于windows. Linux在安装时,要作些必要的分区配置,以便进行Oracle的安装: 同时需要创建专门的数据库用户和组,并配置环境变量. root登录 使用 root 来配置 Oracle 环境 其中**检查环境**部分,需要在安装 Oracle 检查和配置环境 检查环境 1.swap空间 # swap 空间大小,应满足以下条件 # 内存 1~2 G,swap 空间大小应为2倍内存 # 内存 2~16 G, swap 空间大小等同于内存 # 内存 > 16

ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍

如果我是C罗 原文 ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍 sequence在ORACLE中应用十分广泛,就是序列号的意思,会自动增加指定变数,如逐次增加1或者2或者其他. 1.创建序列 Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE 权限 CREATE SEQUENCE CUX_DEMO_SEQUENCEMINVALUE 1MAXVALUE 99999999999START WITH 1000

【Oracle】Oracle中的常用操作

一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b.关闭ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quit 启动

猜测:Oracle ash报告中SQL Text 出现&quot;** SQL Text Not Available **&quot;的原因

今天在做HVR数据同步软件的数据同步测试,由于数据量比较大(1条记录14M,含有lob字段,3000条记录)并且IO很差,因此导致同步(确切的说是HVR的 refresh)很慢. 在hvr同步的过程,生成了awr报告和ash报告,awr报告很闲,如下: 插一句:log file parallel write 这个等待事件的平均每次等待时间为49ms,io实在是太差了. ash报告的Top SQL Statements部分 出现了"** SQL Text Not Available **"

修改Windows中Oracle客户端字符集

1.cmd  进入dos界面 输入regedit  打开注册表. 2. 按照上图修改字符集. 注意: 查看字符集:Select userenv('language') from dual; 中文字符集:AMERICAN_AMERICA.ZHS16GBK 修改Windows中Oracle客户端字符集,布布扣,bubuko.com