【问题标题】:Issue in listagglistagg 中的问题
【发布时间】:2019-05-16 13:11:46
【问题描述】:

我必须连接 2 列并输入值。但问题是即使两个值都为空,它仍然按照以下语法给出 (:)。如果两个值都为空,我们是否可以删除输出中的列。

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

【问题讨论】:

    标签: sql oracle listagg


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢 Gordon....每当我遇到任何问题时您总是帮助我...再次非常感谢 Gordan。
    【解决方案2】:
    AP.ISSUE_ID || nvl2(AP.ISSUE_ID || ISS.ISSUE_DESCRIPTION, ':' || ISS.ISSUE_DESCRIPTION, null)
    

    【讨论】:

    • 谢谢..在上面的命令中分号被忽略了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2021-07-25
    • 2022-01-19
    • 2015-02-17
    相关资源
    最近更新 更多