DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的最佳实践,第 3 部分:如何高效并有效率的查询 XML 数据
2009-11-12 00:00:00 来源:WEB开发网如果你更喜欢在一个单独的行中获得每个 partyId,这可以通过在清单 24 中显示的 XMLTABLE 函数实现:
清单 24. 每行一个 partyId 值
select X.* from
trades,
XMLTABLE('$TRADEDOC/FpML/party'
COLUMNS
PartyId Varchar(20) PATH 'partyId') as X;
结果集:
510026
67781
510026
99114
99114
67781
510026
67781
99114
67781
提示:通常情况下,如果你需要联合关系型和 XML 数据,那么在大多数情况下 SQL/XML 是最佳选择。尤其是,SQL/XML 是允许 XML 数据使用参数标签的一个选择。如果你有 XML-only 应用程序,单独的 XQuery 是一个强大的选择,而且可以用内置 SQL 来允许全文本查询和 UDFs 引用。
涉及 XML 数据的连接查询
提示:SQL/XML 谓词 XMLEXISTS 可以很容易连接 XML 数据和关系型数据。下面的例子使用一个 XMLTABLE 函数来选择交易在存款和取款期间它们的资本总量。这同时也获取这些交易的货币符号并用于和 CURRENCIES 表的关系型 SYMBOL 列来进行连接。最后,通过这个符号的流通值得到一个美元计数的本金来乘以存款的本金。这个查询使用 XMLEXISTS 来在一个关系值(CURRENCIES.SYMBOL)和一个 XML 值(/FpML/trade/termDeposit/principal/currency)执行一个连接。关系型列 SYMBOL 作为 $SYMBOL 在 XMLEXISTS 谓词中被参考:
清单 25. 用 SQL/XML 连接关系型数据和 XML 数据select t.tradeid, c.symbol, c.USDvalue * tx.amount as principal_value_USD
from trades t, currencies c,
xmltable('$TRADEDOC/FpML/trade/termDeposit/principal'
COLUMNS
amount double path 'amount') as tx
where
xmlexists('
$TRADEDOC/FpML/trade/termDeposit/principal[currency = $SYMBOL]);
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››最佳ASP.NET编程习惯
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
更多精彩
赞助商链接