Oracle中SYS_CONNECT_BY_PATH函數

來源:互聯網
上載者:User

標籤:

create table test (a varchar2(10),b varchar2(10));   INSERT INTO TEST (A, B) VALUES (‘1‘, ‘我‘);  INSERT INTO TEST (A, B) VALUES (‘1‘, ‘們‘);  INSERT INTO TEST (A, B) VALUES (‘2‘, ‘一‘);  INSERT INTO TEST (A, B) VALUES (‘2‘, ‘起‘);  COMMIT;   SELECT A, B FROM TEST   A          B  ---------- ----------  1          我  1          們  2          一  2          起   現在需要達到如下的效果,  A          B  ---------- ----------  1          我,們  2          一,起  

只想用一句sql來返回結果

SELECT A, LTRIM(MAX(SYS_CONNECT_BY_PATH(B, ‘,‘)), ‘,‘) B  FROM (SELECT B, A, ROW_NUMBER() OVER(PARTITION BY A ORDER BY B DESC) RN            FROM TEST)  START WITH RN = 1 CONNECT BY RN - 1 = PRIOR RN         AND A = PRIOR A  GROUP BY A; 

其中,SYS_CONNECT_BY_PATH函數主要作用是可以把一個父節點下的所有子節點通過某個字元進行區分,然後串連在一個列中顯示。

row_number函數的用途是非常廣泛,這個函數的功能是為查詢出來的每一行記錄產生一個序號。生產序號的方法通過over()函數裡面的語句來控制。

摘自:http://database.51cto.com/art/201010/231125.htm

 

Oracle中SYS_CONNECT_BY_PATH函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.