sql - 使用 XML PATH 在一个 XMLFILE 中的多个图像
问题描述
我有这样的查询:
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>
推荐阅读
- swift - 共享表从一开始就没有打开
- elasticsearch - 对关键字聚合进行不区分大小写的排序。ES 7.7.0
- python - 如何在带有启动选项的沙盒中启动 Steam?
- laravel - Laravel:防止 Illuminate\Support\Arr::dot() 为一维数组项创建键
- c++ - 在执行期间用 std::bind 重新分配 std::function
- ssl - *.*.companyname.com SSL 证书,要求什么以及注意什么
- java - 不正确版本的 Maven 依赖项
- python - 使用 seaborn(或 matplotlib)创建一个散点图,其中的点由矩形组成
- angular - Angular 应用程序,使用节流时间限制 api 调用。使用状态来跟踪不同参数的调用
- angular - 当我先过滤然后对表进行分组时,行在 mat 表中消失