0

我得到了下面提到的 XML DTD 及其相关的关系数据库模式:

<!DOCTYPE CATALOG [ 
<!ELEMENT CATALOG (TOOL | TOY)+> 
<!ELEMENT TOOL (NAME,SPECIFICATIONS+,OPTIONS?)> 
<!ELEMENT NAME (#PCDATA)> 
<!ELEMENTSPECIFICATIONS (#PCDATA)> 
<!ELEMENT OPTIONS (#PCDATA)> 
<!ELEMENT TOY (NAME,PRICE?)>
<!ELEMENT PRICE (#PCDATA)>]>

Tools(toolid: integer, name: string, options: string) 
Specifications(toolid: integer, specno: integer, spec: string) 
Toys(toyid: integer, name: string, price: string)

如何将以下 SQL 查询转换为等效的 XQuery 表达式?

SELECT name FROM Tools
UNION
SELECT name FROM Toys

提前致谢。

4

1 回答 1

2

XQuery 结果集是嵌套它们时变平的序列(相当于 SQL UNION)。

(/Catalog/Tool/name, /Catalog/Toy/name)

但是你不需要查询这两个路径,因为<name/>标签可能只出现在<Tool/>s 和<Toy/>s 中,所以你可以简单地使用表达式//name

于 2013-06-28T22:14:01.503 回答