在plsql中为null时是不是可以不显示xmlelement?
Posted
技术标签:
【中文标题】在plsql中为null时是不是可以不显示xmlelement?【英文标题】: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 时不显示在输出中,这在某种程度上可能吗?
【问题讨论】:
【参考方案1】:大概是这样的
只有当 xmlelement 有值时才显示它
CASE WHEN a <> c THEN XMLELEMENT("IterationElement2",DECODE( a, 1, 'Y', 'N')) else null END
【讨论】:
似乎工作得很好,不知道为什么我没有想到将 case 语句移到元素之外以上是关于在plsql中为null时是不是可以不显示xmlelement?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Oracle数据库查询中为没有数据的字段赋值为NULL
Sklearn:是不是可以在 OneHotEncoder 中为未知类别指定 null 或 NaN 值?
jCrop API 在 IE 中为 null 或不是对象,但适用于 FF、Chrome 等