我有一个XML列:
<xmlList>
<XMLEntity>
<sug>ACHR</sug>
</XMLEntity>
<XMLEntity>
<sug>DOA</sug>
</XMLEntity>
</xmlList>
sug
只能包含枚举(ACHER
或DOA
)。我想检查一下sug
是否没有这些值。
通过这种方式,我从枚举值中得到它们不是的sug
节点:
SELECT XMLSERIALIZE(XMLQUERY ('//xmlList/XMLEntity/sug[.!="ACHER" and .!="DOA"]'
passing KTOVET ) as char large object) as XXX
FROM "TABLE"
结果还可以,但只要sug
ACHER
或DOA
我得到空行。如何避免结果出现空行?
答案 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
但我建议改用 D&#39;哦,显然不是在DB2上。xml.nodes()
方法。