【发布时间】:2016-07-20 07:15:38
【问题描述】:
在下面的 SQL XML 中,如果所有这些字段都为空,我不想显示 recordingInfo 标记:
cc.source_album_title
cc.product_album_promo_title
cc.label
cc.catalogue_no
cc.isrc
这是我当前的查询:
SELECT XMLAGG(XMLElement("Cue" -- start level 5 tag for cue
,XMLFOREST( rownum as "cueId"
,cc.dn_ccst_status as "cueStatusType"
,decode(cc.dn_ccst_status,'5',cc.cup_code,NULL) as "cueCupType" )
,XMLElement("musicWork" -- start level 6 tag for music title
,XMLFOREST(cc.title as "musicTitle")
,XMLElement("recordingInfo" -- start level 7 tag for music title
,XMLFOREST( cc.source_album_title as "albumTitle"
,cc.product_album_promo_title as "promoTitle"
,cc.label as "label"
,cc.catalogue_no as "catalogNumber"
,cc.isrc as "isrc")
)
) -- end level 6 tag for music title
) -- end level 5 tag cue
)
FROM creation_components cc
WHERE cc.prod_cre_surr_id = 22736214
如果上面列出的列全部为空,这将生成带有空 recordingInfo 标记的 XML:
<Cue>
<cueId>1</cueId>
<cueStatusType>5</cueStatusType>
<cueCupType>W</cueCupType>
<musicWork>
<musicTitle>CLARE@RADIOWORKS.CO.UK</musicTitle>
<recordingInfo></recordingInfo>
</musicWork>
</Cue>
如果其中没有生成其他元素,如何阻止它包括空的recordingInfo 标记?
【问题讨论】: