Jef*_*ock 8 sql db2 ibm-midrange
我试图从iSeries(AS/400)上的DB2中的查询结果创建一个分隔字符串.我在T-SQL中完成了这个,但是在这里找不到办法.
这是我在T-SQL中的代码.我正在寻找DB2中的equivelant.
DECLARE @a VARCHAR(1000)
SELECT @a = COALESCE(@a + ', ' + [Description], [Description])
FROM AP.Checkbooks
SELECT @a
Run Code Online (Sandbox Code Playgroud)
如果我表中的描述如下所示:
说明1
说明2
说明3
然后它会返回:
描述1,描述2,描述3
Can*_*ice 35
从本质上讲,您正在寻找相当于GROUP_CONCAT
DB2 中MySQL的聚合函数.根据我发现的一个线程,您可以通过执行以下XMLAGG
函数来模仿此行为:
create table t1 (num int, color varchar(10));
insert into t1 values (1,'red'), (1,'black'), (2,'red'), (2,'yellow'), (2,'green');
select num,
substr( xmlserialize( xmlagg( xmltext( concat( ', ', color ) ) ) as varchar( 1024 ) ), 3 )
from t1
group by num;
Run Code Online (Sandbox Code Playgroud)
这会回来
1 red,black
2 red,yellow,green
Run Code Online (Sandbox Code Playgroud)
(或者,如果我正确地阅读了东西,应该
归档时间: |
|
查看次数: |
17854 次 |
最近记录: |