[英]Transform XML data into Tabular format in T-SQL
我想知道如何將XML層次結構數據轉換為表格格式,並與SQL Server 2005 T-SQL(XPath / XQuery)中的其他關系數據庫表聯接。
例如,
<Employees>
<Employee ID="001" Name="David" />
<Employee ID="002" Name="Mike" />
<Employee ID="003" Name="Alex" />
<Employee ID="004" Name="Morris" />
</Employees>
至 ..
ID Name
--------+--------
001 David
002 Mike
003 Alex
004 Morris
感謝您的建議。 :)
這是一種方法:
declare @x xml
set @x = '<Employees>
<Employee ID="001" Name="David" />
<Employee ID="002" Name="Mike" />
<Employee ID="003" Name="Alex" />
<Employee ID="004" Name="Morris" />
</Employees>'
select emp.e.value('@ID','varchar(10)') as ID,
emp.e.value('@Name','varchar(10)') as Name
from @x.nodes('Employees/Employee') as emp(e)
這與Joe先前提交的答案略有不同:
DECLARE @X xml
SET @X = '<Employees>
<Employee ID="001" Name="David" />
<Employee ID="002" Name="Mike" />
<Employee ID="003" Name="Alex" />
<Employee ID="004" Name="Morris" />
</Employees>'
SELECT
[Employee].value('@ID','int')As ID,
[Employee].value('@Name','varchar(10)') As Name
FROM
@x.nodes('/Employees/Employee') Employee([Employee])
這是在MSSQL Server 2008 R2中完成的
希望這對您有幫助
declare @xml varchar(max)
SET @xml = '<Employees>
<Employee ID="001" Name="David" />
<Employee ID="002" Name="Mike" />
<Employee ID="003" Name="Alex" />
<Employee ID="004" Name="Morris" />
</Employees>'
Declare @documentHandler INT
EXEC sp_xml_preparedocument @documentHandler OUTPUT,@xml
SELECT *
FROM OPENXML(@documentHandler,'/Employees/Employee')
WITH (ID varchar(20),
Name varchar(150))
EXEC sp_xml_removedocument @documentHandler
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.