1
以下內容將正常工作。但是,我要動態地讀它沒有屬性或coulmn命名如何在選擇語句中不提及屬性名稱的情況下從xml值中獲取值
示例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)
上述工作正常。如何在不提及select語句中的屬性名稱的情況下從xml值中獲取值。
--Required查詢樣本格式 對於如:
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
感謝。當列數或列數未知時是否可以獲取值? – Velsankar
動態SQL有可能,但你想得到什麼輸出?通常從SQL Server返回動態列數是個壞主意 –
我會在表列中得到一個xml值。我必須將它作爲表格返回。每行可能有不同的xml值。所以在執行時只有我知道列數及其屬性名稱。請告知如何獲取值如表 – Velsankar