Oracle的SOME,ANY和ALL操作
平时很少用的这几个操作,今天遇到了。于是又看了一下文档。
SOME和ANY一样,是比较宽松的,类似于OR。满足其中任何一个都可以。
ALL要求严格一些,类似于AND,必须全部满足才可以。
不能单独使用: Must be preceded by =, !=, >, <, <=, >=.
其实更应该关注的是紧跟着的备注信息,这个一开始比较难以理解。
SOME (ANY)
Evaluates to FALSE if the query returns no rows.
ALL
Evaluates to TRUE if the query returns no rows.
做个测试吧。
先看基本信息。
SQL> select max(salary) from employees;
MAX(SALARY)
-----------
24000
SQL> select min(salary) from employees;
MIN(SALARY)
-----------
2100
SQL> select count(1) from employees;
COUNT(1)
----------
107
SQL>
再试试结果。
SQL> SELECT count(1) from employees WHERE salary >= any (select 1 from dual where 1 < 1);
COUNT(1)
----------
0
SQL> SELECT count(1) from employees WHERE salary >= some (select 1 from dual where 1 < 1);
COUNT(1)
----------
0
SQL> SELECT count(1) from employees WHERE salary <= ALL (select 1 from dual where 1 < 1);
COUNT(1)
----------
107
SQL>
相关文档:
oracle 可有什么方法 统计每月累积购买人数
比如说有个门店 2008年购买商品的人数
表:t_buy_log 字段 f_username 用户名称;购买时间f_buytime
1 如果是统计每月购买人数
select to_char(f_buytime,'yyymm'),count(distinct f_username)
from t_buy_log
group by to_char(f_buytime,'yyymm')
......
在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。
1.1 分区表PARTITION table
在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。
1.1.1 分区表的建立:
某公司的每年产生巨大的销售记录,DBA向公司建议每季度的数据放在一个分区内,以下示范的是该公司1999年的数据( ......
BEGIN
SELECT ...
SELECT ...
SELECT ...
...
EXCEPTION
WHEN NO_DATA_FOUND THEN -- catches all ’no data found’ errors
2、异常的分类
有两种类型的异常,一种为内部异常,一种为用户自定义异常,内部异常是执行期间返回到PL/SQL块的ORACLE错误或由PL/ ......
不能连接Oracle数据库了,提示相关的错误
OERR: ORA-12519 TNS:no appropriate service handler found
客户端连接间歇性失败,报错ORA-12519
Cause: the listener could not find any available service handlers that are
appropriate fo ......