私は XML/SQL を勉強していますが、次の質問があります。XML データをテーブルに分割したいと考えています。しかし、私の質問は<author>
、同じ本のカテゴリ内で同じタグ ( ) を使用している多くの著者がいるということです。すべての著者を選択したいのですが、この点を達成できません。それをするのを手伝ってくれませんか?
結果は次のようになります。
category title author author1 author2
=============================================================================
CHILDREN Harry Potter J K. Rowling NULL NULL
WEB XQuery Kick Start James McGovern Per Bothner Kurt Cagle
コード:
declare @int int
declare @var xml = '<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<year>2003</year>
<price>49.99</price>
</book>
</bookstore>';
EXEC sp_xml_preparedocument @int OUTPUT, @var
SELECT
*
into MyTable
FROM
OPENXML(@int, 'bookstore/book', 11)
with
(
category varchar(100),
title varchar(100),
author varchar(100)
author1 varchar(100),
author2 varchar(100)
);