【发布时间】:2020-07-24 22:17:35
【问题描述】:
假设我有 2 个表,分别称为 tb1 和 tb2
create table tb1
(
id int
);
insert into tb1 values(100),(200);
create table tb2
(
id int,
col2 int
);
insert into tb2 values(100,1),(100,2),(100,3),(200,3),(200,4);
这是我的 SQL 代码:
SELECT
t.id as [@healthAccountRecord]
,(
SELECT t2.col2 as [DiagnosisCode/@code]
FROM dbo.tb2 as t2
WHERE t.id = t2.id
FOR XML PATH('DiagnosisCodes'), TYPE
)
FROM dbo.tb1 as t
FOR XML PATH('Account'), ROOT ('Accounts')
这是我的输出:
<Accounts><Account healthAccountRecord="100"><DiagnosisCodes><DiagnosisCode code="1"/>
</DiagnosisCodes><DiagnosisCodes><DiagnosisCode code="2"/></DiagnosisCodes><DiagnosisCodes>
<DiagnosisCode code="3"/></DiagnosisCodes></Account><Account healthAccountRecord="200">
<DiagnosisCodes><DiagnosisCode code="3"/></DiagnosisCodes><DiagnosisCodes><DiagnosisCode code="4"/>
</DiagnosisCodes></Account></Accounts>
这是我想要的样子:
> " <Accounts>
> <Account healthAccountRecord="100"
> <DiagnosisCodes>
> <DiagnosisCode code="1" />
> <DiagnosisCode code="2" />
> <DiagnosisCode code="3" />
> </DiagnosisCodes> </Account>
> <Account healthAccountRecord="200"
> <DiagnosisCodes>
> <DiagnosisCode code="3" />
> <DiagnosisCode code="4" />
> </DiagnosisCodes> <Accounts>
>
> "
http://sqlfiddle.com/#!18/ab448/1
我该如何做到这一点?
【问题讨论】:
标签: sql-server xml tsql xquery