oracle中的in比较运算符,【学习笔记】oracle 比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感...

比较运算符:> 大于,< 小于

>= 大于等于,<= 小于等于

= 等于,!=,<>,^= 不等于

逻辑运算符运算的优先顺序:NOT > AND > OR (如果要改变优先顺序,可以使用括号)

特殊运算符 :

[NOT] BETWEEN…AND…:用于测试是否在范围内;

[NOT]IN (…):用于测试是否在列表中;

[NOT]LIKE:用于进行模式匹配;

IS [NOT] NULL:用于测试是否为空值;

ANY SOME:同列表或查询中的每一个值进行比较,测试是否有一个满足,前面必须使用的运算符包括=、!=、>=、<=、>、=、<=、>、

[NOT]EXISTS:测试是否子查询至少返回一行;

IN的用法:使用以下运算形式,可以显示值满足特定集合的结果: [NOT] IN (...) 显示职务为“SALESMAN‘,“CLERK”和“MANAGER”的雇员信息。 输入并执行查询:

SELECT * FROM emp WHERE job IN (‘SALESMAN‘,‘CLERK‘,‘MANAGER‘);

注意:如果在IN前面增加NOT,将显示职务不在集合列表中的雇员。以上用法同样适用于数值型集合。

多行子查询:

如果子查询返回多行的结果,则我们称它为多行子查询。多行子查询要使用不同的比较运算符号,它们是IN、ANY和ALL。 查询工资低于任何一个“CLERK”的工资的雇员信息。 执行以下查询:

SELECT empno, ename, job,sal FROM emp WHERE sal < ANY (SELECT sal FROM emp WHERE job = ‘CLERK‘) AND job <> ‘CLERK‘;

说明:在emp表的雇员中有4个职务为“CLERK”,他们的工资分别是800、1100、950、1300。满足工资小于任何一个“CLERK”的工资的记录有2个,在这里使用了ANY运算符表示小于子查询中的任何一个工资。 注意:条件job <> ‘CLERK‘排除了职务是CLERK的雇员本身。

查询工资比所有的“SALESMAN”都高的雇员的编号、名字和工资。 执行以下查询:

select empno, ename, sal from emp

where sal > all (select sal from emp where job = ‘SALESMAN‘)

说明:在emp表的雇员中有4个职务为“SALESMAN”,他们的工资分别是1600、1250、1250、1500。在这里使用了ALL运算符,表示大于查询中所有的工资。

查询部门20中职务同部门10的雇员一样的雇员信息。 执行以下查询:

SELECT empno, ename, job FROM emp

WHERE job IN (SELECT job FROM emp WHERE deptno=10)

AND deptno =20;

说明:在该训练中,使用IN运算符表示职务是子查询结果中的任何一个。部门10中有3种职务:MANAGER、PRESIDENT和CLERK,以上查询得到的是部门20中是这3种职务的雇员。

多列子查询 如果子查询返回多列,则对应的比较条件中也应该出现多列,这种查询称为多列子查询。以下是多列子查询的训练实例。 查询职务和部门与SCOTT相同的雇员的信息。 执行以下查询:

SELECT empno, ename, sal FROM emp

WHERE (job,deptno) =(SELECT job,deptno FROM emp WHERE empno=7788);

注:以上内容摘抄 WNFY 的博客 随笔 - 5,文章 - 1,仅作为学习笔记。

原文:http://www.cnblogs.com/Sunshine-CAIWEI/p/4313439.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值