SQL选择为空

时间:2017-11-03 16:52:54

标签: sql oracle

我在Oracle 11中有以下代码:

select xmlelement("foo", xmlagg(xmlelement("bar",myValues))) from someTable where rownum = 0; --Changing the rownum from 0 should give me values

目前的输出是:<foo></foo>

我希望在没有选择任何行时返回任何内容,或者返回null。否则它将是一个带有聚合数据的XMLtype,就像我上面的那样。

如果没有选择任何行,我将如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以使用CLOB功能转换为getClobval并进行比较。

SELECT
    xml
FROM
    (
        SELECT
            xmlelement("foo",xmlagg(xmlelement("bar",myvalues) ) ).getclobval() xml
        FROM
            sometable
    )
WHERE
    TO_CHAR(xml) != '<foo></foo>';

答案 1 :(得分:1)

您可以使用案例选择:

select case when count (*) != 0 then xmlelement("foo", xmlagg(xmlelement("bar",myValues))) end