婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > oracle sys_connect_by_path 函數 結果集連接

oracle sys_connect_by_path 函數 結果集連接

熱門標簽:淮安自動外呼系統開發 廣州市400電話辦理 修改高德地圖標注 語音電話機器人營銷方案 地圖標注原件 百變地圖標注 宜賓外呼系統廠家 語音電話機器人缺點 南通防封外呼系統運營商
以前看過有人轉換過的,當時僅僅驚嘆了一下,就過去了,沒有記下來,直至于用到的時候呢,開始到處找,找來找去都沒有找不到痕跡了,心里也就郁郁寡歡呀。
今天無意間,看connect by的使用,看到了sys_connect_by_path的用法,算是給我一個另類的驚喜了,sys_connect_by_path(columnname, seperator) 也可以拼出串來,不過這個函數本身不是用來給我們做這個結果集連接用的,而是用來構造樹路徑的,所以需要和connect by一起來用。
呵呵呵,在這里囂張了一把,基于對oracle的一些函數的了解的基礎上,看我是怎樣硬生生的把一個沒有樹結構的普通表或者結果集做出我們想要的東西來。
magic is start.
道具,一個普通表,就一個字段 name, 姑且叫表名為test_sysconnectbypath吧,表名太長,嘻嘻,不怕,別名之。
以下為該表數據

NAME
------------------
深圳
武漢
上海
北京
天津
新加坡

別名之
SQL>with temp as (select name form test_sysconnectbypath);
這是別名的寫法,我們下面的sql語句就可以用temp來代替這個結果集。當然這個()里面可以是你自己的復雜查詢出來的結果集也行
第一變性開始,把這個變成有樹形結構的
怎么才能變形成樹結構了,大家馬上想到,加一個pid,和id才行喲,這里沒有,我們就給他們加上吧。不過,加了id,怎么來填他們的結構數據呢,這里需要另一個函數顯圣了 lag() , lag() 是取前記錄, 和lead相對, 如果是簡單的拼的話,樹結構不就是,上一條記錄就是下一條記錄的父節點了么
這樣我們用rownum,不就.... OK了
action
select t.name, no, lag(no) over(order by no) pid from (select temp.*, rownum no from temp) t;
結果出來了

NAME NO PID
-------------------- ---------- ----------

深圳 1
武漢 2 1
上海 3 2
北京 4 3
天津 5 4
新加坡 6 5

現在就是個樹形了吧。
再變樹
action
select * from (select t.name, no, lag(no) over(order by no) pid from (select temp.*, rownum no from temp)) t start with pid is null connect by prior no=pid;
看看結果吧

結果出來了
NAME NO PID
-------------------- ---------- ----------
深圳 1
武漢 2 1
上海 3 2
北京 4 3
天津 5 4
新加坡 6 5

奇怪結果沒有變喲,是的,這里只是把樹給選出來了,你如果加個lpad(' ', 4*level, '*')||name就可以看出端倪了
最后一變,拼成串
select sys_connect_by_path(name. ',') text from (select t.name, no, lag(no) over(order by no) pid from (select temp.*, rownum no from temp)) t start with pid is null connect by prior no=pid;
你們自己看結果吧。
Text
--------------------------------------------------

深圳,武漢,上海,北京,天津,新加坡

......
呵呵呵,雖然是做出來來,但是就像上面說講的,這里只是另類的喜悅,因為這個不是我以前看到的那個解決方案,不過是通過這個方法,有用到了強大的connect by已經分析函數over,僅是竊喜,
找尋工作還要繼續,什么時候才很然給我撥開云霧找到你喲。
您可能感興趣的文章:
  • window中oracle環境變量設置方法分享
  • 安裝Oracle時出現環境變量Path的值大于1023的解決辦法

標簽:池州 南平 南平 襄陽 聊城 通化 股票投資 嘉峪關

巨人網絡通訊聲明:本文標題《oracle sys_connect_by_path 函數 結果集連接》,本文關鍵詞  oracle,sys,connect,path,函數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle sys_connect_by_path 函數 結果集連接》相關的同類信息!
  • 本頁收集關于oracle sys_connect_by_path 函數 結果集連接的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 巴彦淖尔市| 临朐县| 安吉县| 双流县| 竹溪县| 江北区| 夏河县| 天门市| 镇坪县| 威远县| 阳泉市| 贡觉县| 富民县| 新巴尔虎左旗| 常熟市| 磐石市| 康保县| 于都县| 公主岭市| 梁河县| 卢龙县| 茌平县| 康马县| 城固县| 额济纳旗| 邹平县| 沙田区| 青州市| 井冈山市| 姚安县| 黎川县| 伽师县| 东乌珠穆沁旗| 岳阳市| 肥乡县| 罗平县| 盐山县| 灵石县| 孝昌县| 卓尼县| 浙江省|