【问题标题】:Is it possible to not show xmlelement when null in plsql?在plsql中为null时是否可以不显示xmlelement?
【发布时间】:2016-04-22 13:59:45
【问题描述】:

我有一个关于 plsql 中的 xmlelement 的问题。

我的代码如下:

SELECT XMLROOT(
  XMLELEMENT("FirstElement", 'data1'),
  (SELECT XMLAGG(
    XMLELEMENT( "IterationElement1",
      XMLFOREST(
        'value1' AS "FirstSubElement"
        'value2' AS "SecondSubElement"
      )
    ),
    XMLELEMENT( "IterationElement2", CASE WHEN a <> c THEN DECODE( a, 1, 'Y', 'N') ELSE NULL END),
    XMLELEMENT( "IterationElement3", CASE WHEN b <> c THEN DECODE( b, 1, 'Y', 'N' ) ELSE NULL END)
  )
  FROM T2 where id = in_id
  )
)
FROM T1
WHERE id = in_id

目前对于 IterationElement2 和 3,我希望它们在值为 null 时不显示在输出中,这在某种程度上可能吗?

【问题讨论】:

    标签: xml plsql


    【解决方案1】:

    大概是这样的

    只有当 xmlelement 有值时才显示它

    CASE WHEN a <> c THEN XMLELEMENT("IterationElement2",DECODE( a, 1, 'Y', 'N')) else null END
    

    【讨论】:

    • 似乎工作得很好,不知道为什么我没有想到将 case 语句移到元素之外
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    相关资源
    最近更新 更多