[英]How to extract list of values into rows from XML using XQuery?
我有一個XQuery如下
DECLARE @x XML
SELECT @x = '<PartnerEmails>
<Email>a@xxxx.com</Email>
<Email>b@xxxx.com</Email>
</PartnerEmails>'
SELECT @x.query('data(PartnerEmails/Email)').value('.','varchar(100)') AS Val
實際輸出:
Val
a@xxxx.com b@xxxx.com
預期產量
a@xxxx.com
b@xxxx.com
即在兩個不同的行。
怎么做?
用這個:
SELECT
node.value('.','varchar(100)') AS Val
FROM
@x.nodes('/PartnerEmails/Email') AS PE(Node)
由於<PartnerEmails>
有多個節點,因此需要使用.nodes()
函數創建XML片段的“內聯”表-該表中的每個“行”都包含一個<Email>
節點,然后可以在該節點上查詢(並提取XML節點的內容)。
DECLARE @x XML
SELECT @x = '<PartnerEmails>
<Email>a@xxxx.com</Email>
<Email>b@xxxx.com</Email>
</PartnerEmails>'
SELECT ColumnValue.value('.','varchar(1000)') as Val
FROM @x.nodes('/PartnerEmails/Email') as Table1(ColumnValue)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.