2015-12-03 70 views
0

我需要在每日報告中附加註釋,其中筆記根據值存儲在不同的表中。根據案例聲明連接字符串

即根據筆記中的記錄數,筆記存儲在筆記表,多個記錄,LineNo列中,值爲1,2,3等。 筆記線的數量是可變的

我想要選擇筆記和將這3個字段在輸出中連接在一起作爲單個列;

即:

Select (Concat Notes Line1, Notes Line2 Notes Line3), 
     UserName, 
     NotesDate 
From notes 
Where NoteType=2 
and RefNo in (SELECT RefNo from Report); 

我已經看了各種解決方案使用案例和的毗連但沒有似乎工作。存儲過程中已經有一個Join來創建報告。

+0

看看這是否有幫助:http://stackoverflow.com/questions/19098582/listagg-alternative-in-db2 – mustaccio

回答

0

下面應該工作:

Select Line1 || Line2 || Line3, UserName, NotesDate From notes Where NoteType=2 and RefNo in (SELECT RefNo from Report)

如果你堅持使用與concat命令(其在功能上等於||),下面的工作:

Select concat(concat(Line1,Line2),Line3), UserName, NotesDate From notes Where NoteType=2 and RefNo in (SELECT RefNo from Report)

DB2中的concat()命令只能處理兩個參數,這就是爲什麼需要嵌套的concat()。

+0

我應該指定,只有記錄在行號,如果有一行或多行的筆記輸入。 – SIEDASC

+0

您可以在我的示例中添加'case when line not not null'。在另一個說明中,爲什麼不將所有行保存在單個「行」列中? – Tammert

+0

而不是潛在有問題的「||」運算符,「CONCAT」運算符可用於顯式連接(至少在大多數DB2變體中)。 – user2338816