过滤XML SQL查询结果

时间:2014-11-18 13:35:31

标签: sql xml enums db2

我有一个XML列:

<xmlList> 
   <XMLEntity> 
      <sug>ACHR</sug>
   </XMLEntity>

  <XMLEntity> 
      <sug>DOA</sug>
   </XMLEntity>
</xmlList>

sug只能包含枚举(ACHERDOA)。我想检查一下sug是否没有这些值。

通过这种方式,我从枚举值中得到它们不是sug节点:

SELECT XMLSERIALIZE(XMLQUERY ('//xmlList/XMLEntity/sug[.!="ACHER" and .!="DOA"]'  
passing KTOVET ) as char large object) as XXX

FROM "TABLE" 

结果还可以,但只要sug ACHERDOA我得到空行。如何避免结果出现空行?

1 个答案:

答案 0 :(得分:0)

如果您想过滤数据,那么它应该是WHERE子句,而不是投影列表:

SELECT ...
FROM "TABLE" 
WHERE XMLSERIALIZE(XMLQUERY ('//xmlList/XMLEntity/sug[.!="ACHER" and .!="DOA"]'  
passing KTOVET ) as char large object) != '' -- or whatever comparison you need here

但我建议改用xml.nodes()方法。 D&#39;哦,显然不是在DB2上。