我正在尝试使用DB2数据库中XML数据类型列中的选择条件来选择数据。
以下查询在oracle中有效
SELECT * from TABLENAME where extractvalue(xmlcolumn,'/row/c2') LIKE '84%'
在下面的MSSQL中,选择查询有效
SELECT * from TABLENAME where xmlcolumn.value('(/row/c2)[1]', 'VARCHAR(250)') LIKE '84%'
请建议在DB2数据库中同样实现
答案 0 :(得分:0)
尝试一下:
with tablename (id, xmlcolumn) as (
select *
from table(values
(1, xmlparse(document '
<row>
<c2>84123</c2>
</row>
'))
, (2, xmlparse(document '
<row>
<c2>85123</c2>
</row>
'))
))
select *
from tablename
where xmlexists('$x/row[fn:starts-with(c2, "84")]' passing xmlcolumn as "x")
;