在listagg中发布

时间:2019-05-16 13:11:47

标签: sql oracle listagg

我必须连接2列并放入值。但是问题是,即使两个值都为null,也仍然按照以下语法提供(:)。无论如何,如果两个值都为null,我们可以删除输出中的列。

listagg(AP.ISSUE_ID||':'||ISS.ISSUE_DESCRIPTION ,'; ') within group(order by AP.ISSUE_ID||':'||ISS.ISSUE_DESCRIPTION) DESCRIPTION,

2 个答案:

答案 0 :(得分:4)

如果要忽略listagg()中的列,请将值设置为NULL。在这种情况下,Oracle接受NULL值进行字符串连接。因此,让我们在串联后进行测试:

listagg(nullif(AP.ISSUE_ID ||| ':' || ISS.ISSUE_DESCRIPTION, ':'),'; ')
    within group (order by AP.ISSUE_ID || ':'|| ISS.ISSUE_DESCRIPTION) as DESCRIPTION,

答案 1 :(得分:1)

AP.ISSUE_ID || nvl2(AP.ISSUE_ID || ISS.ISSUE_DESCRIPTION, ':' || ISS.ISSUE_DESCRIPTION, null)