我想知道如何將來自同一列的多個記錄從兩個不同的表中合併到一個表中。例如下面是我的表:Oracle SQL - 結合多個表結果集中一列中同一列中的值
注表:
INVOICE NOTES
1000 REPLACE PUMP
1000 REPLACE OIL
1000 REPLACE FILTER
1111 WO# 123
1111 REPLACE GASKET
1234 REPLACE OIL
發票表:
INVOICE AMOUNT
1000 100
1111 50
1234 20
我可以運行此查詢,並將結果:
SELECT INV.INVOICE, INV.AMOUNT FROM INVOICE INV
INNER JOIN NOTES ON INV.INVOICE = NOTES.INVOICE
但我會比如將結果集中一列中的每張發票的註釋合併在一起。對於例子我的結果應該是這樣的
INVOICE AMOUNT NOTES
1000 100 REPLACE PUMP, REPLACE OIL, REPLACE FILTER
1111 50 WO# 123,REPLACE GASKET
1234 20 REPLACE OIL
哪個Oracle的版本?看看11g +上的listagg()。只要連接的筆記不超過您的版本的限制。 [另見本文](https://oracle-base.com/articles/misc/string-aggregation-techniques)。 –
它是12.1。我會嘗試listagg()。 – jax
[SQL查詢來連接Oracle中多行的列值]的可能重複(https://stackoverflow.com/questions/4686543/sql-query-to-concatenate-column-values-from-multiple-rows-in- oracle) –