XQuery by value function中的属性

时间:2014-05-11 04:53:51

标签: sql-server xml xquery-sql

我试图在不使用WHERE过滤器的情况下过滤掉“主题”下的“浪漫”书籍。

<book>
  <bk_id>402</bk_id>
  <bk_title>Adult Book</bk_title>
  <bk_subject>Romance</bk_subject>
  <bk_price>$35.99</bk_price>
  <bk_authors>
    <author>Dodgson</author>
  </bk_authors>
</book>
  

SELECT datax.value('(// book [book_subj [1] eq“Romance”])',   'varchar(12)')AS RomanceBooks from xml_book

XQuery [xml_book.datax.value()]: Cannot implicitly atomize or apply 'fn:data()' to complex content elements, found type 'book' within inferred type 'element(book,#anonymous) *'.

此错误阻止我运行此查询。我的问题是,如果不使用Where过滤器,是否可以这样做?

1 个答案:

答案 0 :(得分:1)

无法使用SQL查询的列列表限制返回的行。

如果要对表xml_books中的行进行过滤,则需要where子句,连接或交叉应用。