设为首页 收藏本站
查看: 552|回复: 0

[经验分享] oracle 一次查询语句

[复制链接]

尚未签到

发表于 2016-7-18 11:59:42 | 显示全部楼层 |阅读模式
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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-245888-1-1.html 上篇帖子: Oracle RMAN相关验证备份 下篇帖子: oracle 保存点的创建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表