WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院数据库DB2 用 SQL 查询 DB2 XML 数据 阅读

用 SQL 查询 DB2 XML 数据

 2007-05-20 16:17:17 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愭娑樷枎閹邦剛娉氶梺鍛婎殔濞层劌鈻撻幋婵愬殫妞ゆ梻鍘х憴锟�
核心提示: 考虑以下查询(清单 11),该查询投影存储在 "items" 表中的关系数据和 XML 数据,用 SQL 查询 DB2 XML 数据(8),(关于 "items" 表请查看 图 1),评论 ID、客户 ID 和评语存储在 "comments

考虑以下查询(清单 11),该查询投影存储在 "items" 表中的关系数据和 XML 数据。(关于 "items" 表请查看 图 1)。评论 ID、客户 ID 和评语存储在 "comments" 列中的 XML 文档中。商品名称存储在一个 SQL VARCHAR 列中。

清单 11. 检索多个 XML 元素并将每个元素转换成传统的 SQL 数据类型select t.Comment#, i.itemname, t.CustomerID, Message from items i,
xmltable('$c/Comments/Comment' passing i.comments as "c"
columns Comment# integer path 'CommentID',
  CustomerID integer path 'CustomerID',
  Message varchar(100) path 'Message') as t

第一行指定将包含在结果集中的列。查询中后面的几行表明,用引号括起来、并且以变量 "t" 为前缀的列是基于 XML 元素值的列。第二行调用 XMLTable 函数指定包含目标数据("i.comments")的 DB2 XML 列和在该列的 XML 文档中的路径,通过该路径可以定位感兴趣的元素(在根元素 "Comments" 的子元素 "Comment" 中)。第 3 到 5 行的 "columns" 子句标识出将被映射到第一行指定的 SQL 结果集中的输出列的特定 XML 元素。这个映射需要指定 XML 元素值将被转换成的数据类型。在这个例子中,所有 XML 数据被转换成传统的 SQL 数据类型。

图 4 展示了运行该查询得到的示例结果。可以看到,输出是一个简单的 SQL 结果集。注意,列名已经被变成大写形式 —— 这在 SQL 中是很常见的。

图 4. 使用 XMLTable 函数的查询的示例输出

如果需要的话,还可以使用 XMLTable 创建包含 XML 文档的结果集。例如,以下语句产生类似于上述结果的结果集,不同的是 "Message" 数据被包含在一个 XML 列中,而不是包含在一个 SQL VARCHAR 列中。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:SQL 查询 DB

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接