В настоящее время у меня есть этот код, который хранит XML в столбце XML-типа, называемом данными, в таблице с именем Storage.
CREATE TABLE Storage
(
ID INT IDENTITY(1,1) PRIMARY KEY,
data XML NOT NULL
)
GO
INSERT INTO Storage(data)
VALUES('<footballteams>
<team manager="Benitez">
<name>Liverpool</name>
<ground>Anfield</ground>
</team>
<team manager="Mourinho">
<name>Chelsea</name>
<ground>Stamford Bridge</ground>
</team>
<team manager="Wenger">
<name>Arsenal</name>
<ground>Highbury</ground>
</team>
</footballteams>');
Я хотел бы создать представление под названием Football View, которое измельчает данные и отображает их в форме: FootballView (TeamName, Manager, Ground).
Раньше я разбивал полные документы с помощью метода .nodes() на столбцы таблицы, но при создании представления это кажется более сложным (у меня есть причины для использования представлений). Проблема в том, что ранее я просто вызывал .nodes для переменной @input, которая была DECLARE'd как xml = 'xmlcontent', но с представлениями это невозможно сделать, и я хочу проанализировать XML, содержащийся в столбце таблицы Storage.
Любые идеи? Заранее спасибо.
РЕДАКТИРОВАТЬ:
Раньше, если бы я разделил на таблицы, я бы использовал такой код:
SELECT
TeamName = Foot.value('(name)[1]', 'varchar(100)'),
Manager = Foot.value('(@manager)', 'varchar(100)'),
Ground = Foot.value('(ground)[1]', 'varchar(100)')
FROM
@input.nodes('/footballteams/team') AS Tbl(Foot)
EDIT2: это результат, который я ожидаю.