博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 中 start with 的用法 ---- 递归遍历符合条件的树节点
阅读量:5062 次
发布时间:2019-06-12

本文共 948 字,大约阅读时间需要 3 分钟。

基本用法~~~~~~~~~~~~~~~~~~~~~~

SELECT * FROM tree-- where 子句 , 若有,只是过滤最终结果的作用START WITH father = '爷爷'    -- 从 father 为 '爷爷' 的 那一条记录开始-- 若有 nocyle 关键字, 则不走环, 仅列出所有映射CONNECT BY [NOCYCLE] PRIOR son = father; -- 你的 son 为 他人的 father, 搜索他人,即往下找

 

实际例子~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

问题:
数据库里有字段day_number,msisdn。如何写月度连续3天有记录的手机号?表结构如下:
BILL_MONTH           DAY_NUMBER MSISDN
-------------------- ---------- --------------------
200803                        1 1380000000
200803                        3 1380000000
200803                        2 1380000000
200803                        2 1380100000
200803                        4 1380400000
200803                        5 1380400000
表中3月份连续3天有记录的纪录就是1380000000。请问如何写这样的sql?

 

select distinct  msisdn  from test  a    where  bill_month='200803'    and exists    (       select msisdn from  test      where  bill_month='200803' and msisdn=a.msisdn      start with day_number=a.day_number      connect by  prior day_number=day_number-1 and prior msisdn= msisdn      group by msisdn      having count(*)>=3    );

 

转载于:https://www.cnblogs.com/luffya/p/3470302.html

你可能感兴趣的文章
简化通知中心的使用
查看>>
SpringMVC的@Validated校验注解使用方法
查看>>
Python之os模块
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
【蓝桥杯】PREV-21 回文数字
查看>>
html 简介
查看>>
python使用上下文对代码片段进行计时,非装饰器
查看>>
js中比较实用的函数用法
查看>>
安装预览版镜像后无法检测到预览版更新的解决方案
查看>>
【bzoj5099】[POI2018]Pionek 双指针法
查看>>
别让安全问题拖慢了 DevOps!
查看>>
JAR打包和运行
查看>>
session如何保存在专门的StateServer服务器中
查看>>
react展示数据
查看>>
测试计划
查看>>
idea设置自定义图片
查看>>
[高级]Android多线程任务优化1:探讨AsyncTask的缺陷
查看>>
选择器
查看>>
rownum 的使用
查看>>
Mysql与Oracle 的对比
查看>>