[英]How to get values from the xml value without mentioning its attribute's name in select statement
以下將正常工作。 但是我想動態讀取它,而無需屬性或同名
樣本XML
declare @xmlval xml='<ArrayOfCustomers>
<Customer>
<ItemId>1</ItemId>
<Value>Mr Smith</Value>
</Customer>
<Customer>
<ItemId>2</ItemId>
<Value>Mr Bloggs</Value>
</Customer>
</ArrayOfCustomers>'
樣品查詢
SELECT
Cust.value('(ItemId)[1]', 'int') AS 'ItemID',
Cust.value('(Value)[1]', 'Varchar(50)') AS 'Customer Name'
FROM
@xmlval.nodes('/ArrayOfCustomers/Customer') AS AOC(Cust)
以上工作正常。 如何從xml值獲取值而不在select語句中提及其屬性名稱。
-所需的查詢樣本格式,例如:
SELECT
Cust.value('[0][1]', 'int') AS 'ItemID',
Cust.value('[1][1]', 'Varchar(50)') AS 'Customer Name'
要么
SELECT
Cust.value('[1]', 'int') AS 'ItemID',
Cust.value('[1]', 'Varchar(50)') AS 'Customer Name'
FROM
@xmlval.nodes('/ArrayOfCustomers/Customer') AS AOC(Cust)
在我們的情況下,我不知道輸入@xmlval值的列或屬性名稱。 我想將xml值插入新表(int,varchar(50))
謝謝,Velsankar
您可以通過*
選擇所有元素,然后通過[1]
首先獲得,然后通過[2]
獲得第二個元素:
select
Cust.value('*[1]', 'int') AS 'ItemID',
Cust.value('*[2]', 'Varchar(50)') AS 'Customer Name'
from @xmlval.nodes('/ArrayOfCustomers/Customer') as AOC(Cust)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.