Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server XML查询_Sql_Sql Server_Xml - Fatal编程技术网

SQL Server XML查询

SQL Server XML查询,sql,sql-server,xml,Sql,Sql Server,Xml,我从大学开始就没有处理过XML文档。我在寻求帮助。我需要在SQLServer中编写一个XML查询,以输出数据 请注意,数据仅从SQL Server中的一个表中提取 <EnrollmentRequest> <Vendor id="string"/> <Members> <Member> -- 1st Member Record <PayerPatientId>string</

我从大学开始就没有处理过XML文档。我在寻求帮助。我需要在SQLServer中编写一个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>

但是我无法获取“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')

这将枚举所有成员,将每个成员输出到
元素中,然后将其“包装”到
根元素中的
元素中。

就是这样做的。我在XML地狱里,谢谢你它成功了@如果这个答案帮助你解决了你的问题,那么请。这将表达你对那些花自己的时间帮助你的人的感激之情。
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')