Sql XML显式分解和添加问题
因此,我目前编写了一些针对XML EXPLICIT的Sql XML显式分解和添加问题,sql,ssms,ssms-2012,Sql,Ssms,Ssms 2012,因此,我目前编写了一些针对XML EXPLICIT的SQL语句,除了我遇到的两件事之外,一切都很顺利 当我尝试添加这个额外的4标签层时,它只是在Chase部分的底部添加PatientData,而不是在每个Chase中添加 如下 <ChaseRequests dtGenerated="Friday, January 30, 2015 5:24:39 PM"> <Chases> <Chase id="12345"> <Practice
SQL语句,除了我遇到的两件事之外,一切都很顺利
当我尝试添加这个额外的4标签层时,它只是在Chase部分的底部添加PatientData,而不是在每个Chase中添加
如下
<ChaseRequests dtGenerated="Friday, January 30, 2015 5:24:39 PM">
<Chases>
<Chase id="12345">
<PracticeId><![CDATA[82791]]></PracticeId>
<AccountId><![CDATA[8279101]]></AccountId>
<RequestingCompany><![CDATA[DERP]]></RequestingCompany>
</Chase>
<Chase id="12346">
<PracticeId><![CDATA[82791]]></PracticeId>
<AccountId><![CDATA[8279101]]></AccountId>
<RequestingCompany><![CDATA[DERP]]></RequestingCompany>
<PatientData />
<PatientData />
</Chase>
</Chases>
</ChaseRequests>
我的理想结果
<ChaseRequests dtGenerated="Friday, January 30, 2015 5:24:39 PM">
<Vendor ID="Derp"/>
<Request ID="Herp"/>
<Chases>
<Chase id="12345">
<PracticeId><![CDATA[82791]]></PracticeId>
<AccountId><![CDATA[8279101]]></AccountId>
<RequestingCompany><![CDATA[DERP]]></RequestingCompany>
<PatientData />
</Chase>
<Chase id="12346">
<PracticeId><![CDATA[82791]]></PracticeId>
<AccountId><![CDATA[8279101]]></AccountId>
<RequestingCompany><![CDATA[DERP]]></RequestingCompany>
<PatientData />
</Chase>
</Chases>
</ChaseRequests>
仅供参考-我计划在PatientData标记中放置更多嵌套标记-我只希望PatientData标记出现在每个“Chase”区域中
任何信息将不胜感激 forxml EXPLICIT
按顺序处理行,因此必须对行施加与其层次关系相匹配的顺序。像这样:
SELECT
tag,
parent,
[ChaseRequests!1!dtGenerated],
[Chases!2!],
[Chase!3!id],
[Chase!3!PracticeId!CData],
[Chase!3!AccountId!CData],
[Chase!3!RequestingCompany!CData],
[PatientData!4!Element]
FROM (SELECT
1 Tag,
NULL Parent,
'Friday, January 30, 2015 5:24:39 PM' as [ChaseRequests!1!dtGenerated],
NULL as [Chases!2!],
NULL as [Chase!3!id],
NULL as [Chase!3!PracticeId!CData],
NULL as [Chase!3!AccountId!CData],
NULL as [Chase!3!RequestingCompany!CData],
NULL as [PatientData!4!Element]
UNION ALL
SELECT
2 Tag,
1 Parent,
'Friday, January 30, 2015 5:24:39 PM',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
UNION ALL
SELECT
3 Tag,
2 Parent,
'Friday, January 30, 2015 5:24:39 PM',
NULL,
c.ChartID,
'82791',
'8279101',
'DERP',
NULL
FROM Charts c
WHERE ChartID in (12345,12346)
UNION ALL
SELECT
4 Tag,
3 Parent,
'Friday, January 30, 2015 5:24:39 PM',
NULL,
c.ChartID,
NULL,
NULL,
NULL,
NULL
FROM Charts c
WHERE ChartID in (12345,12346)
) X
order by [ChaseRequests!1!dtGenerated],
[Chases!2!],
[Chase!3!id],
Tag
FOR XML EXPLICIT
注意:这只会变得更复杂,你越深入。你真的应该考虑切换到<代码>路径>代码>或者<代码> Auto <代码>,以使自己更容易。谢谢输入!这肯定帮了我解决了筑巢的问题——不确定你是否能帮我解决我需要的“额外”两条线。如果我能保留我的CDATA标记,我肯定会使用XML路径:(
<ChaseRequests dtGenerated="Friday, January 30, 2015 5:24:39 PM">
<Vendor ID="Derp"/>
<Request ID="Herp"/>
<Chases>
<Chase id="12345">
<PracticeId><![CDATA[82791]]></PracticeId>
<AccountId><![CDATA[8279101]]></AccountId>
<RequestingCompany><![CDATA[DERP]]></RequestingCompany>
<PatientData />
</Chase>
<Chase id="12346">
<PracticeId><![CDATA[82791]]></PracticeId>
<AccountId><![CDATA[8279101]]></AccountId>
<RequestingCompany><![CDATA[DERP]]></RequestingCompany>
<PatientData />
</Chase>
</Chases>
</ChaseRequests>
SELECT
tag,
parent,
[ChaseRequests!1!dtGenerated],
[Chases!2!],
[Chase!3!id],
[Chase!3!PracticeId!CData],
[Chase!3!AccountId!CData],
[Chase!3!RequestingCompany!CData],
[PatientData!4!Element]
FROM (SELECT
1 Tag,
NULL Parent,
'Friday, January 30, 2015 5:24:39 PM' as [ChaseRequests!1!dtGenerated],
NULL as [Chases!2!],
NULL as [Chase!3!id],
NULL as [Chase!3!PracticeId!CData],
NULL as [Chase!3!AccountId!CData],
NULL as [Chase!3!RequestingCompany!CData],
NULL as [PatientData!4!Element]
UNION ALL
SELECT
2 Tag,
1 Parent,
'Friday, January 30, 2015 5:24:39 PM',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
UNION ALL
SELECT
3 Tag,
2 Parent,
'Friday, January 30, 2015 5:24:39 PM',
NULL,
c.ChartID,
'82791',
'8279101',
'DERP',
NULL
FROM Charts c
WHERE ChartID in (12345,12346)
UNION ALL
SELECT
4 Tag,
3 Parent,
'Friday, January 30, 2015 5:24:39 PM',
NULL,
c.ChartID,
NULL,
NULL,
NULL,
NULL
FROM Charts c
WHERE ChartID in (12345,12346)
) X
order by [ChaseRequests!1!dtGenerated],
[Chases!2!],
[Chase!3!id],
Tag
FOR XML EXPLICIT