2017-03-04 70 views
0

我想在SQL中編寫查詢。誰能幫我寫的Oracle SQL查詢結果表下方結果表描述

Table 1 Data 
prodno description 
1 Laptop 
2 Charger 
3 Mouse 

Table 2 Data 
prodno prodset_no 
1 1 
2 1 
3 1 
1 2 
3 2 
1 3 
2 3 


Result Table 
prodset_no prodset_desc 
1  Laptop,Charger,Mouse 
2  Laptop,Mouse 
3  Laptop,Charger 

回答

2

JOIN兩個表,然後用listagg生產逗號分隔的輸出:

select t2.prodset_no, 
    listagg(t1.description, ',') within group (
     order by t1.prodno 
     ) prodset_desc 
from table2 t2 
join table1 t1 on t2.prodno = t1.prodno 
group by t2.prodset_no; 

此外,值得一記的是,listagg有4000字節的限制。如果達到該限制,則可以使用XMLAGG或重新考慮問題,而不是在SQL中執行它,而是在應用程序代碼中處理它。

+0

非常感謝你的工作 – user2293819