[英]How to generate xml from SQL with Column Name as prop and Column Value as value MSSQL Server
我有一個SQL表,其中包含以下列
我想通過SQL查詢生成XML,其結果如下
<Customer>
<Prop ID="Name" ValStr="CustName" />
<Prop ID="FatherName" ValStr="Mr.xxx" />
<Prop ID="MotherName" ValStr="Mrs.yyy" />
<Prop ID="Nationality" ValStr="ZZZ" />
</Customer>
我怎么能得到這個。 請幫我
像這樣嘗試:
DECLARE @tbl TABLE(Name VARCHAR(100),FatherName VARCHAR(100),MotherName VARCHAR(100),Nationality VARCHAR(100));
INSERT INTO @tbl VALUES
('Name1','FatherName1','MotherName1','Nationality1')
,('Name2','FatherName2','MotherName2','Nationality2');
SELECT
'Name' AS [Prop/@ID]
,Name AS [Prop/@ValStr]
,''
,'FatherName' AS [Prop/@ID]
,FatherName AS [Prop/@ValStr]
,''
,'MotherName' AS [Prop/@ID]
,MotherName AS [Prop/@ValStr]
,''
,'Nationality' AS [Prop/@ID]
,Nationality AS [Prop/@ValStr]
FROM @tbl
FOR XML PATH('Customer'),ROOT('root')
結果
<root>
<Customer>
<Prop ID="Name" ValStr="Name1" />
<Prop ID="FatherName" ValStr="FatherName1" />
<Prop ID="MotherName" ValStr="MotherName1" />
<Prop ID="Nationality" ValStr="Nationality1" />
</Customer>
<Customer>
<Prop ID="Name" ValStr="Name2" />
<Prop ID="FatherName" ValStr="FatherName2" />
<Prop ID="MotherName" ValStr="MotherName2" />
<Prop ID="Nationality" ValStr="Nationality2" />
</Customer>
</root>
需要空列( ,''
)來告知引擎啟動新元素。 否則,您將得到一個錯誤,因為一個屬性不能在同一個元素中存在兩次。
你好
您可以使用FOR XML RAW實用程序
SELECT NAME, FATHERNAME, MOTHERNAME, NATIONALITY
FROM table_name
FOR XML RAW ('ID');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.