繁体   English   中英

SQL Server XML查询

[英]SQL Server XML query

自大学以来我就没有处理过XML文档。 我正在寻找帮助。 我需要在SQL Server中编写一个XML查询,该查询将这样输出数据。

请注意,数据只是从SQL Server中的一个表中提取的。

<EnrollmentRequest>
    <Vendor id="string"/>
    <Members>
        <Member>  -- 1st Member Record
            <PayerPatientId>string</PayerPatientId>
            <PayerInsuranceId>string</PayerInsuranceId>
            <RequestTypeId>6427</RequestTypeId>
            <LastName>string</LastName>
            <FirstName>string</FirstName>
            <Gender>string</Gender>
            <DOB>string</DOB>
            <Zip>string</Zip>
            <Phone>string</Phone>
            <SSN>string</SSN>
            <City>string</City>
            <State>string</State>
            <DateOfServiceRange/>
            <PatientConsent>string</PatientConsent>
        </Member>
        <Member> -- 2nd Member Record
            <PayerPatientId>string</PayerPatientId>
            <PayerInsuranceId>string</PayerInsuranceId>
            <RequestTypeId>-2065</RequestTypeId>
            <LastName>string</LastName>
            <FirstName>string</FirstName>
            <Gender>string</Gender>
            <DOB>string</DOB>
            <Zip>string</Zip>
            <Phone>string</Phone>
            <SSN>string</SSN>
            <City>string</City>
            <State>string</State>
            <DateOfServiceRange/>
            <PatientConsent>string</PatientConsent>
        </Member>
    </Members>
</EnrollmentRequest>

我尝试使用

FOR XML PATH('Member'),  
ROOT('EnrollmentRequest')

但是我无法获得'Members'元素,我的理解是不能有多个根,因此我如何才能使'Members'标签像“ EnrollmentRequest”标签一样起作用以及如何获得供应商ID标签仅在文件中出现一次?

您需要为您的会员信息使用子选择-像这样:

SELECT 
    'abc' AS 'Vendor/@Id',
    (SELECT
        m.ID,
        m.LastName,
        m.FirstName,
        m.ZIP,
        m.City
    FROM 
        dbo.YourMembersTable m
    FOR XML PATH('Member'), TYPE) AS 'Members'
FOR XML PATH(''), ROOT('EnrollmentRequest')

这将枚举所有成员,在<Member>元素中输出每个成员,然后将其“包装”到<EnrollmentRequest>根元素内的<EnrollmentRequest> <Members>元素中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM