組合多列表中的一個字段的值。組合多列Oracle 11g表中的一個字段的值
T1在幾列中有重複值,然後是最後一列中的非唯一值。需要返回前6列中的唯一值,然後組合最後一列中的非唯一值。 Col1是焦點,所以累積來自col7中的各種值。中間的列並不重要,它們可以是唯一的或非唯一的。他們確實需要顯示在返回的值。
樣品被高度簡化的現實問題,但手頭的事情就是回到COL1,兩者之間的一切,然後拼接從COL7累積值
CREATE TABLE T1
(
COL1 NUMBER,
COL2 NUMBER,
COL3 NUMBER,
COL4 NUMBER,
COL5 NUMBER,
COL6 NUMBER,
COL7 NUMBER);--
INSERT INTO T1 VALUES(1, 2, 3, 4, 5, 6, 7);
INSERT INTO T1 VALUES(1, 2, 3, 4, 5, 6, 97);
INSERT INTO T1 VALUES(1, 2, 3, 4, 5, 6, 147);
Desired results
COL1, COL2, COL3, COL4, COL5, COL6, COL7
1 2 3 1 2 3 7, 97,147
我想這將需要兩個自加入連接,但不知道如何創建腳本。
任何和所有的建議和見解讚賞。
LISTAGG功能可以幫助你。 – voter
感謝您的回覆。 SELECT COL1,LISTAGG(COL7, '')在組(ORDER BY COL1)姓名 FROM( 選擇唯一 COL7, COL1 從T1 ) GROUP BY COL1 – user761758
我不能讓顯示器格式代碼,但它確實工作,給我幾乎所有我需要的東西。我仍然無法工作的是將列I添加到1到7之間。listagg爲col 1和col7提供了所需的結果,但是在任何地方我嘗試添加其他列時,出現錯誤。 – user761758