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>
相关文档:
本文转载:http://blog.csdn.net/flm_0722/archive/2009/10/08/4643566.aspx
一、设置初始化参数 job_queue_processes
sql> alter system set job_queue_processes=n;(n>0)
job_queue_processes最大值为1000
查看job queue 后台进程
sql>select name,description from v$bgprocess;
......
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')
......
前天有人提了需求,想对某个字段进行按位的或操作。本来建议查询出来之后在应用程序里面处理,但是数据量比较大,觉得还是返回一个分组计算之后的值比较合适。
两个问题,一个是按为或的操作,这个参考了别人的文档,用bitand函数实现。 原文如下:
http://blog.chinahr.com/blog/hewy0526/post/112968
然后就是自定义的 ......
1. 查询数据库现在的表空间
select tablespace_name, file_name, sum(bytes)/1024/1024 table_size from dba_data_files group by tablespace_name,file_name;
2. 建立表空间
CREATE TABLESPACE data01 DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M;
3.删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS ......
不能连接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 ......