`
wt75037
  • 浏览: 10759 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

oracle 一次查询语句

阅读更多
select E3.ID AS ID,
E1.SUBSCRIBENAME AS SUBSCRIBENAME,
E5.ALEVELID AS ALEVELID,
E4.ISNOTIFY AS ISNOTIFY,
E4.EMAILFORMAT AS EMAILFORMAT,
E4.EMAILADDR AS EMAILADDR,
E1.ATYPEID AS ATYPEID,
E2.ASUBTYPEID
from
(
SELECT SUBSCRIBENAME,
TRANSLATE(LTRIM(text, '/'), '*/', '*,') ATYPEID
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY SUBSCRIBENAME ORDER BY SUBSCRIBENAME, lvl DESC) rn,
SUBSCRIBENAME,
text
FROM (
SELECT SUBSCRIBENAME,
LEVEL lvl,
SYS_CONNECT_BY_PATH(ATYPEID, '/') text
FROM (
SELECT D1.SUBSCRIBENAME AS SUBSCRIBENAME,
D1.ATYPEID as ATYPEID,
ROW_NUMBER() OVER(
PARTITION BY D1.SUBSCRIBENAME ORDER BY D1.SUBSCRIBENAME, D1.ATYPEID
) x
FROM
(
select C1.Subscribename,
C2.ATYPEID
from alert_subscribe_config C1,
(
SELECT B1.ID AS ID,
B1.ATYPEID AS ATYPEID
FROM
(

SELECT ID,
max(substr(ATYPEID, 2)) ATYPEID
FROM (
SELECT ID, sys_connect_by_path(ATYPEID, ',') ATYPEID
FROM (
SELECT ID,
ATYPEID,
ID || rn rchild,
ID || (rn - 1) rfather
FROM (
SELECT A2.ID AS ID,
A2.ATYPEID AS ATYPEID,
row_number() over(
PARTITION BY A2.ID ORDER BY A2.ATYPEID
) rn
FROM 
(
SELECT A.ID,  CASE  WHEN A.ATYPEID = 0 THEN '阀值告警'  WHEN A.ATYPEID = 2 THEN   '业务异动告警'  ELSE  '阀值告警'  END ATYPEID   FROM ALERT_SUBSCRIBE_SUB_CONFIG A
) A2
)
)
CONNECT BY PRIOR rchild = rfather
START WITH rfather LIKE '%0'
)
GROUP BY ID     
)B1
)C2
WHERE C1.SUB_ID = C2.ID
) D1

ORDER BY D1.SUBSCRIBENAME, D1.ATYPEID
) a
CONNECT BY SUBSCRIBENAME = PRIOR SUBSCRIBENAME
AND x - 1 = PRIOR x
)
)
WHERE rn = 1
ORDER BY SUBSCRIBENAME
)E1,
(
SELECT SUBSCRIBENAME,
TRANSLATE(LTRIM(text, '/'), '*/', '*,') ASUBTYPEID
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY SUBSCRIBENAME ORDER BY SUBSCRIBENAME, lvl DESC) rn,
SUBSCRIBENAME,
text
FROM (
SELECT SUBSCRIBENAME,
LEVEL lvl,
SYS_CONNECT_BY_PATH(ASUBTYPEID, '/') text
FROM (
SELECT D1.SUBSCRIBENAME AS SUBSCRIBENAME,
D1.ASUBTYPEID as ASUBTYPEID,
ROW_NUMBER() OVER(
PARTITION BY D1.SUBSCRIBENAME ORDER BY D1.SUBSCRIBENAME, D1.ASUBTYPEID
) x
FROM
(
select C1.Subscribename,
C2.ASUBTYPEID
from alert_subscribe_config C1,
(
SELECT B2.ID AS ID,
B2.ASUBTYPEID AS ASUBTYPEID
FROM
(
SELECT ID,
max(substr(ASUBTYPEID, 2)) ASUBTYPEID
FROM (
SELECT ID, sys_connect_by_path(ASUBTYPEID, ',') ASUBTYPEID
FROM (
SELECT ID,
ASUBTYPEID,
ID || rn rchild,
ID || (rn - 1) rfather
FROM (
SELECT A2.ID AS ID,
A2.ASUBTYPEID AS ASUBTYPEID,
row_number() over(
PARTITION BY A2.ID ORDER BY A2.ASUBTYPEID
) rn
FROM 
(
SELECT A.ID,  CASE  WHEN A.ASUBTYPEID = 0 THEN  '订购业务量指标超限'   WHEN A.ASUBTYPEID = 1 THEN  '取消订购业务量指标超限'   WHEN A.ASUBTYPEID = 2 THEN  '上行业务量指标超限' WHEN A.ASUBTYPEID = 3 THEN  '下行业务量指标超限' WHEN A.ASUBTYPEID = 4 THEN '点播消费金额指标超限'   WHEN A.ASUBTYPEID = 5 THEN  '上行业务量异动'  ELSE   '订购业务量指标超限'    END ASUBTYPEID  FROM ALERT_SUBSCRIBE_SUB_CONFIG A
) A2
)
)
CONNECT BY PRIOR rchild = rfather
START WITH rfather LIKE '%0'
)
GROUP BY ID     
)B2

)C2
WHERE C1.SUB_ID = C2.ID
) D1

ORDER BY D1.SUBSCRIBENAME, D1.ASUBTYPEID
) a
CONNECT BY SUBSCRIBENAME = PRIOR SUBSCRIBENAME
AND x - 1 = PRIOR x
)
)
WHERE rn = 1
ORDER BY SUBSCRIBENAME
)E2,
(
SELECT   SUBSCRIBENAME, TRANSLATE (LTRIM (text, '/'), '*/', '*,') ID
FROM (SELECT ROW_NUMBER () OVER (PARTITION BY SUBSCRIBENAME ORDER BY SUBSCRIBENAME,
lvl DESC) rn,
SUBSCRIBENAME, text
FROM (SELECT     SUBSCRIBENAME, LEVEL lvl,
SYS_CONNECT_BY_PATH (ID,'/') text
FROM (SELECT   SUBSCRIBENAME, ID as ID,
ROW_NUMBER () OVER (PARTITION BY SUBSCRIBENAME ORDER BY SUBSCRIBENAME,ID) x
FROM ALERT_SUBSCRIBE_CONFIG
ORDER BY SUBSCRIBENAME, ID) a
CONNECT BY SUBSCRIBENAME = PRIOR SUBSCRIBENAME AND x - 1 = PRIOR x))
WHERE rn = 1
ORDER BY SUBSCRIBENAME
) E3,
(
select  t.subscribename, t.isnotify,t.emailformat,t.emailaddr from alert_subscribe_config t
group by  t.subscribename, t.isnotify,t.emailformat,t.emailaddr
) E4,
(
SELECT   SUBSCRIBENAME, TRANSLATE (LTRIM (text, '/'), '*/', '*,') ALEVELID
FROM (SELECT ROW_NUMBER () OVER (PARTITION BY SUBSCRIBENAME ORDER BY SUBSCRIBENAME,
lvl DESC) rn,
SUBSCRIBENAME, text
FROM (SELECT     SUBSCRIBENAME, LEVEL lvl,
SYS_CONNECT_BY_PATH (ALEVELID,'/') text
FROM (SELECT   SUBSCRIBENAME, ALEVELID as ALEVELID,
ROW_NUMBER () OVER (PARTITION BY SUBSCRIBENAME ORDER BY SUBSCRIBENAME,ALEVELID) x
FROM ALERT_SUBSCRIBE_CONFIG
ORDER BY SUBSCRIBENAME, ALEVELID) a
CONNECT BY SUBSCRIBENAME = PRIOR SUBSCRIBENAME AND x - 1 = PRIOR x))
WHERE rn = 1
ORDER BY SUBSCRIBENAME
) E5
WHERE E1.SUBSCRIBENAME = E2.SUBSCRIBENAME  AND E1.SUBSCRIBENAME = E3.SUBSCRIBENAME
AND E1.SUBSCRIBENAME = E4.SUBSCRIBENAME AND E1.SUBSCRIBENAME = E5.SUBSCRIBENAME
) x
分享到:
评论

相关推荐

    Oracle常用SQL查询语句

    此查询用于获取数据库中的回滚段信息,包括回滚段的名称、所属的表空间、状态以及初始扩展量、下一次扩展量等。 ### 4. 查询控制文件名称 ```sql SELECT name FROM v$controlfile; ``` **功能说明:** 此查询返回...

    Oracle批处理:使用C# 自带Oracle驱动一次执行多条Sql语句

    本文将深入探讨如何在C#中利用Oracle自带的驱动来实现批处理,以一次执行多条SQL语句。 首先,我们需要了解Oracle的数据驱动,即ODP.NET(Oracle Data Provider for .NET)。这是Oracle公司为.NET开发者提供的一个...

    Oracle学习查询语句

    日期函数非常丰富,例如`SYSDATE`返回当前日期,`MONTHS_BETWEEN()`计算两个日期之间的月数,`ADD_MONTHS()`添加指定月数,`NEXT_DAY()`和`LAST_DAY()`分别找到下一次指定日期和指定日期所在月份的最后一天。...

    oracle之查询语句

    总的来说,Oracle查询语句是一个强大的工具,通过灵活运用这些基本和高级功能,我们可以从Oracle数据库中获取所需的数据并进行复杂的分析。学习和熟练掌握这些知识,对于在数据库管理和开发领域的工作至关重要。

    oracle备份与经典语句

    3. 差异备份:类似于增量备份,但基于全备份而不是上一次的差异备份。 4. 归档日志备份:用于RMAN(Recovery Manager)的逻辑备份,仅备份归档日志,配合全备份和增量备份使用。 三、Oracle经典备份语句 1. RMAN全...

    面试oracle必备的sql语句

    - `last_analyzed` 显示了最后一次分析的时间。 #### 12. 查看还没提交的事务 这个查询可以找出当前未提交的事务,这对于调试和优化数据库性能非常有帮助。 ```sql -- SQL语句待补充 ``` 以上就是Oracle面试中...

    oracle数据库常用操作语句

    - `&`和`&&`:声明临时变量,`&`需要输入两次,`&&`只输入一次。 - `set verify`:控制是否显示变量替换前后的信息。 - `define`:定义变量,如`define temp=100`。 - `accept`:接受用户输入定义变量,可以指定...

    ORACLE常用增删改查语句

    ORACLE常用的查询语句以及数据库授权语句 表与表之间的内外连接查询 日期时间的SQL函数处理 ...由于一次性上传不了两份文档,下载了ORACLE.txt的童鞋可以再点我的资料免费下载数据库授权语句的文件

    Oracle SQL语句性能优化

    - 全表扫描:虽然全表扫描会读取所有记录,但Oracle通过一次性读取多个数据块来优化这一过程。然而,对于大型表,应尽量避免全表扫描。 - ROWID访问:ROWID包含记录的物理位置信息,通过索引可以快速定位ROWID,...

    ORACLE_UPDATE_语句语法与性能分析

    此外,我们也可以一次更新多个列,如`city_name`和`customer_type`,只要这些列都可以从关联的临时表中获得。 请注意,使用子查询更新多个列时,如果子查询返回多行,UPDATE语句会抛出错误。在上述示例中,由于每个...

    Oracle常用语句-总结文档汇总

    4) 使用绑定变量,避免由于相同的SQL语句多次解析造成的开销;5) 数据库设计的合理性,如适当的范式化,减少数据冗余和更新异常。 在SQL查询方面,掌握各种查询方式是基础。包括SELECT的基本语法,聚合函数(如...

    Oracle数据库sql语句的基本操作详解

    对于简单无关联的数据库访问,可以通过一次查询合并多个独立的简单查询,即便它们之间没有直接关联,这样能减少网络传输和数据库处理的开销。 删除重复记录时,可以使用ROWID属性进行高效操作。例如,使用DELETE...

    .Net Oracle一次请求执行多条sql语句 Oracle批处理 使用游标一次执行多条Sql语句

    在.net 中查询Sql Server 一次请求执行多条sql语句很简单 拼接起来就好了 初次接触oracle 在网上寻找了很多方法终于被我解决了 我把问题想复杂了 例子中提供了2种解决方案 一种是用游标 还有一种就是很简单的...

    超酷30个Oracle语句优化规则详解

    Oracle通过一次读取多个数据块来优化此过程。 2. **通过ROWID访问**:ROWID是一种特殊的标识符,用于存储表中每条记录的物理地址。通过ROWID访问可以显著提升性能,尤其是在进行基于索引列的查询时。索引提供了快速...

    oracle 查询语句笔记

    此查询首先找到员工的薪资等级,然后计算每个部门的平均等级,这涉及到两次JOIN操作,一次是与salgrade表,一次是与结果集的汇总。 4. **求哪些人是经理**: 这个查询查找员工表(emp)中manager ID(mgr)在员工...

    oracle语句优化.docx

    如果将 SQL 的字符串及格式写得完全相同,则 Oracle 只会分析一次,共享内存也只会留下一次的分析结果。 9. WHERE 子句后面的条件顺序的影响 WHERE 子句后面的条件顺序对大数据量表的查询会产生直接的影响。可以...

    ORACLE数据库SQL语句编写优化总结

    全表扫描方式适用于小表,因为这种方式顺序地访问表中的每条记录,ORACLE通过一次读取多个数据块进行优化。但对于大表来说,全表扫描则会极大地影响性能,所以应尽量避免。通过ROWID访问表是一种基于ROWID的访问方式...

    基于Oracle数据库的SQL语句优化

    Oracle通过一次读取多个数据块的技术来优化全表扫描过程。 - **通过索引访问表**:这种方式通过利用索引中包含的物理位置信息来提高访问效率。索引建立了数据与其物理存储位置之间的关联,使得基于索引列的查询能够...

    oracle高效语句编写知识.doc

    Oracle通过一次读取多个数据块来优化全表扫描的性能。 - **通过ROWID访问表**:ROWID是Oracle的一种特殊类型的键,用于存储记录的物理地址。通过索引访问ROWID,可以极大地提高访问表的速度,尤其是当查询涉及到索引...

    oracle常用sql语句

    - **解释**: 撤销上一次提交之后的所有更改。 #### 十四、提交 - **命令**: `COMMIT;` - **示例**: ```sql SQL> COMMIT; ``` - **解释**: 提交当前事务中的所有更改。 #### 十五、用户授权 - **命令示例**: - ...

Global site tag (gtag.js) - Google Analytics