我有一个这样的查询:
SELECT a.test AS 'TRANSFERT/STUFF/NAME", b.URL AS "TRANSFERT/STUFF/IMAGE/URL"
FROM stuff a, image b
WHERE a.id = b.id
FOR XML PATH;
但我可以为同一件事拍摄几张照片。
我想要的是这样一个xml:
<TRANSFERT>
<STUFF>CAR</STUFF>
<IMAGE>http://url1</IMAGE>
<IMAGE>http://url2</IMAGE>
<IMAGE>http://url3</IMAGE>
</TRANSFERT>
我怎么能有这样的xml文件?
您需要使用带有XML的嵌套查询来实现您想要的结果,例如:
-- Database setup...
create table dbo.[stuff] (
id int not null,
test nvarchar(10)
);
insert dbo.[stuff] (id, test) values
(1, N'CAR');
create table dbo.[image] (
id int not null,
[URL] nvarchar(20)
);
insert dbo.[image] (id, [URL]) values
(1, N'http://url1'),
(1, N'http://url2'),
(1, N'http://url3');
-- XML query result...
select
a.test as 'STUFF',
(
select [URL] as 'text()'
from dbo.[image] b
where b.id = a.id
for xml path('IMAGE'), type
)
from dbo.[stuff] a
for xml path('TRANSFERT');
这就产生了结果。。。
<TRANSFERT>
<STUFF>CAR</STUFF>
<IMAGE>http://url1</IMAGE>
<IMAGE>http://url2</IMAGE>
<IMAGE>http://url3</IMAGE>
</TRANSFERT>