當前位置:編程學習大全網 - 源碼下載 - oracle 怎麽將多行拼接字符串

oracle 怎麽將多行拼接字符串

我們常常說

用SQL將Oracle中同壹列的多行記錄拼接成壹個字符串是如何實現的:[sql]--

原始數據--

a

111--

b

222--

a

333--

a

444--

b

555--

最終結果--

a

111*333*444SELECTL4.L_TIME,MAX(SUBSTR(L4.分組內容,2))

最終字段值FROM(SELECTL3.L_TIME,SYS_CONNECT_BY_PATH(L3.L_CONTENT,'*')

AS

分組內容FROM(SELECTL2.L_TIME,L2.L_CONTENT,L2.L_TIME||L2.分組內編號

AS

分組字段加編號,L2.L_TIME||(L2.分組內編號-1)

AS

上級分組字段加編號FROM(SELECTL1.L_TIME

--

分組依據,L1.L_CONTENT

--

同壹列中

要合並的不同行

的值,ROW_NUMBER()

OVER

(PARTITION

BY

L1.L_TIME

ORDER

BY

L1.L_CONTENT

ASC)

分組內編號FROM

LOGS

L1)

L2)

L3START

WITH

L3.上級分組字段加編號

LIKE

'%0'CONNECT

BY

PRIOR

L3.分組字段加編號=L3.上級分組字段加編號)

L4WHERE

L_TIME='111'GROUP

BY

L4.L_TIME--

ROW_NUMBER()

OVER(PARTITION

BY

A

ORDER

BY

B

DESC)

新列名--

根據A分組,在分組內部根據B排序,而此函數計算的值就表示每組內部排序後的順序編號(組內連續的唯壹的)--

SYS_CONNECT_BY_PATH

函數:

第壹個參數是形成樹形式的字段,第二個參數是父級和其子級分隔顯示用的分隔符--

CONNECT

BY

PRIOR

...我們常常說

用SQL將Oracle中同壹列的多行記錄拼接成壹個字符串是如何實現的:[sql]--

原始數據--

a

111--

b

222--

a

333--

a

444--

b

555--

最終結果--

a

111*333*444SELECTL4.L_TIME,MAX(SUBSTR(L4.分組內容,2))

最終字段值FROM(SELECTL3.L_TIME,SYS_CONNECT_BY_PATH(L3.L_CONTENT,'*')

AS

分組內容FROM(SELECTL2.L_TIME,L2.L_CONTENT,L2.L_TIME||L2.分組內編號

AS

分組字段加編號,L2.L_TIME||(L2.分組內編號-1)

AS

上級分組字段加編號FROM(SELECTL1.L_TIME

--

分組依據,L1.L_CONTENT

--

同壹列中

要合並的不同行

的值,ROW_NUMBER()

OVER

(PARTITION

BY

L1.L_TIME

ORDER

BY

L1.L_CONTENT

ASC)

分組內編號FROM

LOGS

L1)

L2)

L3START

WITH

L3.上級分組字段加編號

LIKE

'%0'CONNECT

BY

PRIOR

L3.分組字段加編號=L3.上級分組字段加編號)

L4WHERE

L_TIME='111'GROUP

BY

L4.L_TIME--

ROW_NUMBER()

OVER(PARTITION

BY

A

ORDER

BY

B

DESC)

新列名--

根據A分組,在分組內部根據B排序,而此函數計算的值就表示每組內部排序後的順序編號(組內連續的唯壹的)--

SYS_CONNECT_BY_PATH

函數:

第壹個參數是形成樹形式的字段,第二個參數是父級和其子級分隔顯示用的分隔符--

CONNECT

BY

PRIOR

是標示父子關系的對應--

START

WITH

代表妳要開始遍歷的的節點

  • 上一篇:NFTG量子商品模型研發和應用
  • 下一篇:什麽是檢驗lis系統?
  • copyright 2024編程學習大全網