怎么查???
解决方案 »
- oracle 数据同步
- 求助一个sql语句,万分谢过了
- Oracle的https://localhost:1158/em IE不能登入
- oracle 内部错误ora-00600:
- 为什么序列号不存在?
- 关于sql2000的全文索引不可用问题
- 如何通过编程知道某一张表是否具有触发器?并且获得触发器的名称??
- 用存储过程执行insert 操作时,却在主键上出入了sequence?
- 给定一个时间A ,如何取得A所在月的最后一天,和下一个月的第一天?在线,等!急!急!急!
- java连接oracle的问题,请大家帮忙
- Oracle中如何把存进去的二进制文件转换成图片文件
- min(sysdate-to_date('t2.FIRST_ORD_DATE','yyyymmdd'))
存有字段:
FILTERID
CONNECTIVE_TYPE
COLUMN_NAME
OP_TYPE
COMPARABLE_VALUE
PARENT_FILTER_ID 查询:
Java代码
SELECT filter_id, connective_type, column_name, op_type, camparable_value, parent_filter_id
FROM tidm_evt_filter
CONNECT BY PRIOR filter_id = parent_filter_id
START WITH filter_id = 'xxx' 删除
Java代码
DELETE FROM tidm_evt_filter
WHERE FILTER_ID
in(
SELECT filter_id FROM tidm_evt_filter
CONNECT BY PRIOR filter_id = parent_filter_id
START WITH filter_id = 'xxx'
)
select count(f.id) from phl_pic_file f, (
select id from phl_group where create_at between
to_date('2009-12-01 00:00:01','yyyy-mm-dd hh24:mi:ss')
and to_date('2009-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
and category_id in (
select distinct id from phl_category
connect by prior id=parent_id
start with parent_id = 28) ) b where f.photo_id = b.id;
2 START WITH mgr IS NULL CONNECT BY mgr=PRIOR empno;EMPTREE
--------------------------------------------------------------------------------KING
JONES
SCOTT
ADAMS
FORD
SMITH
BLAKE
ALLEN
WARD
MARTIN
TURNEREMPTREE
-------------------------------------------------------------------------------- JAMES
CLARK
MILLER已选择14行。SQL>
start with --树起点connect by --父子节点连接条件
1、树结构根据一个节点向下递归(这个是比较慢的,因为向下递归往往每层可以找到对个对象,而且每次基本是FULL SCAN,如果数据量超过10W就会显得比较慢了,不过在这种结构下只能这样查找):
SELECT *
FROM <table_name>
START WITH <节点标识字段>=[:传入参数值]
CONNECT BY PRIOR <节点标识字段> = <父亲节点标识字段>;2、向上递归,由于节点标识往往都是PK,所以向上递归往往是比较快的:
SELECT *
FROM <table_name>
START WITH <节点标识字段>=[:传入参数值]
CONNECT BY PRIOR <父亲节点标识字段> = <节点标识字段>;3、创建基于查询的树结构,使得查询变得简单方便,而且不适用递归查询,在其上建立一个索引将会得到迅速扫描:
模拟结构:
-----------------------------------------------------------
节点标识 父亲节点标识 所有父亲节点标识
-----------------------------------------------------------
001 NULL {001}
002 001 {001}{002}
003 003 {001}{003}
004 002 {001}{002}{004}
...
009 004 {001}{002}{004}{009}
....对于所有父亲节点标识,创建索引查询(可以是唯一性索引),在这个查询中,不论是向上递归还是向下递归都是用一个LIKE就可以搞定,此时程序传入的就是:“所有父亲节点”,如现在传入的是节点002:的这个字段:{001}{002},此时如果要向下递归就是:
SELECT *
FROM <table_name>
WHERE <所有父亲节点名称> LIKE <传入参数>||'%';
向上递归就是:
SELECT *
FROM <table_name>
WHERE <传入参数> LIKE <所有父亲节点名称>||'%';很简单方便,这个在接触过的很多项目中效率上也显示出很大优势。