2014-03-03 43 views
1

我使用查詢&公司退回的產品從表中結果(公司能夠生產的產品2-3-n型)理清從SQL查詢

我正在尋找一種方式來改變結果這樣

| X | A | 
| X | B | 
| Y | A | 
| Z | B | 
| Z | C | 
| Z | D | 

(其中X,Y,Z是公司& A,B,C,d爲產品)

弄成這樣

| X | A | B | | 
| Y | A | | | 
| Z | B | C | D | 
+1

你應該看看'PIVOT'聲明... – Drewness

+0

你在處理什麼樣的RDBMS服務器? –

+0

這是一個HSQLDB表 – user3375684

回答

0

這個查詢將在一個數組返回每個公司的產品:

SELECT COMPANY, ARRAY_AGG(PRODUCT) FROM PRODUCTS GROUP BY COMPANY 

你不能把數組轉換成列的數目可變。但是你可以通過包裝選擇Get列的固定數量:

SELECT COMPANY, AAA[1], AAA[2], AAA[3], AAA[4] FROM 
    (SELECT COMPANY, AA || ARRAY['', '', ''] AAA FROM 
    (SELECT COMPANY, ARRAY_AGG(PRODUCT) AA FROM PRODUCTS GROUP BY COMPANY)) 

的總數組之間(1,n)的元素,因此,你需要一些空元素添加到年底,如果你想返回元素的數量。