Oracle 12 XMLElement:如果值_expr为空,则无标记
早上好,来自德国 现在,如果值_expr为null,是否有方法抑制XMLElement中的整个标记 类似:抑制宾果标记:Oracle 12 XMLElement:如果值_expr为空,则无标记,oracle,xmlelement,Oracle,Xmlelement,早上好,来自德国 现在,如果值_expr为null,是否有方法抑制XMLElement中的整个标记 类似:抑制宾果标记: SELECT XMLELEMENT( "artno", trim(artno) ) , XMLELEMENT( "bingo", NULL ) FROM articlemasterdata WHERE artno = '770100C' <artnr>770100C</artnr> <bingo></bingo>
SELECT XMLELEMENT( "artno", trim(artno) )
, XMLELEMENT( "bingo", NULL )
FROM articlemasterdata
WHERE artno = '770100C'
<artnr>770100C</artnr>
<bingo></bingo>
即使XMLTYPE也会提供一个空标记:
SELECT XMLTYPE( XMLELEMENT( "artno", trim(artno) ).getclobval() )
, XMLTYPE( XMLELEMENT( "bingo", null ).getclobval() )
FROM articlemasterdata
WHERE artno = '770100C';
<artnr>770100C</artnr>
<bingo></bingo>
谢谢,
Joachim您可以使用xmlforest而不是xmlelement:
或者更现实一点:
-- CTE for dummy table
with articlemasterdata (artno, bingo) as (
select '770100A', 'legs eleven' from dual
union all
select '770100C', null from dual
)
-- actual query
SELECT XMLELEMENT( "artno", trim(artno) )
, XMLFOREST( bingo as "bingo")
FROM articlemasterdata
WHERE artno = '770100A'
OR artno = '770100C';
XMLELEMENT("ARTNO",TRIM(ARTNO)) XMLFOREST(BINGOAS"BINGO")
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
<artno>770100A</artno> <bingo>legs eleven</bingo>
<artno>770100C</artno>
甚至:
SELECT XMLELEMENT( "root",
XMLELEMENT( "artno", trim(artno) )
, XMLFOREST( bingo as "bingo")
)
FROM articlemasterdata
WHERE artno = '770100A'
OR artno = '770100C';
XMLELEMENT("ROOT",XMLELEMENT("ARTNO",TRIM(ARTNO)),XMLFOREST(BINGOAS"BINGO"))
--------------------------------------------------------------------------------
<root><artno>770100A</artno><bingo>legs eleven</bingo></root>
<root><artno>770100C</artno></root>
您可以使用xmlforest而不是xmlelement:
或者更现实一点:
-- CTE for dummy table
with articlemasterdata (artno, bingo) as (
select '770100A', 'legs eleven' from dual
union all
select '770100C', null from dual
)
-- actual query
SELECT XMLELEMENT( "artno", trim(artno) )
, XMLFOREST( bingo as "bingo")
FROM articlemasterdata
WHERE artno = '770100A'
OR artno = '770100C';
XMLELEMENT("ARTNO",TRIM(ARTNO)) XMLFOREST(BINGOAS"BINGO")
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
<artno>770100A</artno> <bingo>legs eleven</bingo>
<artno>770100C</artno>
甚至:
SELECT XMLELEMENT( "root",
XMLELEMENT( "artno", trim(artno) )
, XMLFOREST( bingo as "bingo")
)
FROM articlemasterdata
WHERE artno = '770100A'
OR artno = '770100C';
XMLELEMENT("ROOT",XMLELEMENT("ARTNO",TRIM(ARTNO)),XMLFOREST(BINGOAS"BINGO"))
--------------------------------------------------------------------------------
<root><artno>770100A</artno><bingo>legs eleven</bingo></root>
<root><artno>770100C</artno></root>