簡體   English   中英

如何從SQL以列名作為prop並將列值作為值MSSQL Server生成xml

[英]How to generate xml from SQL with Column Name as prop and Column Value as value MSSQL Server

我有一個SQL表,其中包含以下列

  1. 名稱
  2. 父親姓名
  3. 母親名字
  4. 國籍

我想通過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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM