日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

connect连接oracle6,Oracle Connect By 使用实例

發(fā)布時間:2024/9/27 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 connect连接oracle6,Oracle Connect By 使用实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在實際開發(fā)中? connect by可以替代plsql或java中的循環(huán)間化開發(fā)代碼,提高開發(fā)效率。如下是我在工作中遇到一個實際解決的問題

具體場景:

原系統(tǒng)是一個管理宿舍信息的系統(tǒng),dorm_room用于存放宿舍的房間信息具體表結構是

create table dorm_room(bno varchar2(2),fno varchar2(2),rno varchar2(2),bednum varchar2(2));

這里存放了樓棟號,層號,房間號,及房間中床位總數

具體數據如下

insert into dorm_room values(1,1,1,4);

insert into dorm_room values(1,1,2,4);

insert into dorm_room values(1,1,3,7);

也就是說有三個房間,前兩個房間床位數都是4,最后一個房間的床位數是7

目前的需求是根據床位數顯示出每個房間中所有床位的數據。期望結果是

1? 1? 1? 1

1? 1? 1? 2

1? 1? 1? 3

1? 1? 1? 4

1? 1? 2? 1

1? 1? 2? 2

1? 1? 2? 3

1? 1? 2? 4

1? 1? 3? 1

1? 1? 3? 2

1? 1? 3? 3

1? 1? 3? 4

1? 1? 3? 5

1? 1? 3? 6

1? 1? 3? 7

如果用pl/sql根據每行的床位數判斷循環(huán)次數,顯示出每個房間的所有床位數,編寫起來必然要書寫較多行代碼,因此選用

sql中的connect by的方式生成出所有的房間的床位數,具體sql為

select distinct bno,fno,rno,t.l

from (

select row_number()over(partition by bno,fno,rno order by level) rn,

bno,fno,rno,level l

from dorm_room

connect by level<=bedno

) t

order by bno,fno,rno

顯示結果

BN FN RN? ? ? ? ? L

-- -- -- ----------

1? 1? 1? ? ? ? ? 1

1? 1? 1? ? ? ? ? 2

1? 1? 1? ? ? ? ? 3

1? 1? 1? ? ? ? ? 4

1? 1? 2? ? ? ? ? 1

1? 1? 2? ? ? ? ? 2

1? 1? 2? ? ? ? ? 3

1? 1? 2? ? ? ? ? 4

1? 1? 3? ? ? ? ? 1

1? 1? 3? ? ? ? ? 2

1? 1? 3? ? ? ? ? 3

BN FN RN? ? ? ? ? L

-- -- -- ----------

1? 1? 3? ? ? ? ? 4

1? 1? 3? ? ? ? ? 5

1? 1? 3? ? ? ? ? 6

1? 1? 3? ? ? ? ? 7

總結

以上是生活随笔為你收集整理的connect连接oracle6,Oracle Connect By 使用实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。