oracle 中start with 的用法
oracle?中start?with?的用法 ? 发表于2013/3/3?23:29:35??40191人阅读 ? 分类:?Oracle ? oracle?提供了start?with?connect?by?语法结构可以实现递归查询。 ? 1.?一个简单举例: SQL>?select?*??from?test; ? BILL_MONTH???????????DAY_NUMBER?MSISDN --------------------?----------?-------------------- 200803????????????????????????1?13800 200803????????????????????????3?13800 200803????????????????????????2?13800 200803????????????????????????2?13801 200803????????????????????????4?13804 200803????????????????????????5?13804 200803????????????????????????7?13804 200803????????????????????????8?13804 200803????????????????????????6?13802 200803????????????????????????6?13801 200803????????????????????????7?13801 200803????????????????????????8?13801 ? 12?rows?selected ? SQL> SQL>?select?*?from?test ??2???????start?with?day_number=1 ??3???????connect?by??prior?day_number=day_number-1?and?prior?msisdn=?msisdn ??4??????; ? BILL_MONTH???????????DAY_NUMBER?MSISDN --------------------?----------?-------------------- 200803????????????????????????1?13800 200803????????????????????????2?13800 200803????????????????????????3?13800 ? SQL> ? ? 上面的语句查找出了从1开始,并且day_number?逐渐+1?递增的,并且?msisdn?相同的哪些个数据. ? ? 2.?start?with??connect?by?语法结构 ?如上面说看到的?例子,?其语法结构为??start?with?condition??connect?by??condition?(含?prior?关键字) start?with?conditon?给出的seed?数据的范围,?connect?by??后面给出了递归查询的条件,prior?关键字表示父数据,prior?条件表示子数据需要满足父数据的什么条件。 ? 在下面的这个start?with?connect?by?结构中,就表示?查找出了从1开始,父数据的day_number等于子数据的day_number-1而且父数据的msisdn=子数据的msisdn. ? start?with?day_number=1 ?????connect?by??prior?day_number=day_number-1?and?prior?msisdn=?msisdn (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |