Sql server 需要帮助格式化SQL Server XML同级查询的输出吗
考虑以下SQL Server XML输出:Sql server 需要帮助格式化SQL Server XML同级查询的输出吗,sql-server,xml,formatting,Sql Server,Xml,Formatting,考虑以下SQL Server XML输出: <CUSTOMER> <CUST_ID>TEST_CUSTOMER_01</CUST_ID> <ORG_CODE>MY_ORG</ORG_CODE> <CUSTOMER_TYPE CUST_TYPE="RETAIL" /> <CUSTOMER_COUNTRY CTRY_CODE="US" /> </CUSTOMER> 要求输出与下面的输出类
<CUSTOMER>
<CUST_ID>TEST_CUSTOMER_01</CUST_ID>
<ORG_CODE>MY_ORG</ORG_CODE>
<CUSTOMER_TYPE CUST_TYPE="RETAIL" />
<CUSTOMER_COUNTRY CTRY_CODE="US" />
</CUSTOMER>
要求输出与下面的输出类似。在上面的查询中,用元素
替换两个类型
单词是不行的
那我怎么做呢
<CUSTOMER>
<CUST_ID>TEST_CUSTOMER_01</CUST_ID>
<ORG_CODE>MY_ORG</ORG_CODE>
<CUSTOMER_TYPE>
<CUST_TYPE>SHIP_TO</CUST_TYPE>
</CUSTOMER_TYPE>
<CUSTOMER_COUNTRY>
<CTRY_CODE>US</CTRY_CODE>
</CUSTOMER_COUNTRY>
</CUSTOMER>
测试客户01
我的组织
装运至
美国
谢谢 试试这个查询
select CUST_ID,ORG_CODE,( SELECT CUSTOMER_TYPE.CUST_TYPE AS CUST_TYPE
FROM @customer_type CUSTOMER_TYPE
WHERE CUSTOMER.CUST_ID = CUSTOMER_TYPE.CUSTOMER_ID
FOR XML path (''),TYPE) AS 'CUSTOMER_TYPE' ,(
SELECT CUSTOMER_COUNTRY.CTRY_CODE as CTRY_CODE
FROM @customer_country CUSTOMER_COUNTRY
WHERE CUSTOMER.CUST_ID = CUSTOMER_COUNTRY.CUSTOMER_ID
for xml path (''),TYPE
) AS 'CUSTOMER_COUNTRY' from
@customer CUSTOMER
for xml auto, ELEMENTS
使用上述查询,您将得到如下结果:
<CUSTOMER>
<CUST_ID>TEST_CUSTOMER_01</CUST_ID>
<ORG_CODE>MY_ORG</ORG_CODE>
<CUSTOMER_TYPE>
<CUST_TYPE>SHIP_TO</CUST_TYPE>
</CUSTOMER_TYPE>
<CUSTOMER_COUNTRY>
<CTRY_CODE>US</CTRY_CODE>
</CUSTOMER_COUNTRY>
</CUSTOMER>
测试客户01
我的组织
装运至
美国
对于XML路径来说,最好的(使用率和性能最好!)是。通过简单的命名来定义任何想要的输出是非常直观和容易的
SELECT
'TEST_CUSTOMER_01' AS [CUST_ID]
,'MY_ORG' AS [ORG_CODE]
,'SHIP_TO' AS [CUSTOMER_TYPE/CUST_TYPE]
,'US' AS [CUSTOMER_COUNTRY/CTRY_CODE]
--FROM
-- CUSTOMER
--WHERE
-- CUSTOMER.CUST_ID = 'TEST_CUSTOMER_01'
FOR XML PATH('CUSTOMER')
哇!比我的答案好得多。:)谢谢你的回答!
SELECT
'TEST_CUSTOMER_01' AS [CUST_ID]
,'MY_ORG' AS [ORG_CODE]
,'SHIP_TO' AS [CUSTOMER_TYPE/CUST_TYPE]
,'US' AS [CUSTOMER_COUNTRY/CTRY_CODE]
--FROM
-- CUSTOMER
--WHERE
-- CUSTOMER.CUST_ID = 'TEST_CUSTOMER_01'
FOR XML PATH('CUSTOMER')