2
我從檢索字段NTEXT XML格式的文本(下面一排的樣本格式):選擇多個節點XML
<root>
<DocInfo>
<CompanyName>Some Company</CompanyName>
<WebsiteUrl>http://www.someurl.com</WebsiteUrl>
<PrimaryServices>Benefits Administration</PrimaryServices>
<PrimaryServices>Payroll Processing</PrimaryServices>
<SecondaryServices>Background Checking</SecondaryServices>
<SecondaryServices>HR Outsourcing</SecondaryServices>
<SecondaryServices>Comp & Benefits</SecondaryServices>
<SecondaryServices>Administration</SecondaryServices>
</DocInfo>
</root>
使用這個SQL,我檢索了單個節點的值:
select @xmlString = COALESCE(@xmlString + '', '') + cast(content_html as nvarchar(max)) FROM content where folder_id = 18
set @xmlString = replace(@xmlString,'<?xml version="1.0" encoding="UTF-16" standalone="yes"?>','')
set @XML = cast(@xmlString as xml)
Select
T.N.value('CompanyName[1]', 'varchar(250)') as CompanyName,
T.N.value('WebsiteUrl[1]', 'varchar(250)') as WebsiteUrl,
T.N.value('PrimaryServices[1]', 'varchar(250)') as PrimaryServices,
T.N.value('SecondaryServices[1]', 'varchar(250)') as SecondaryServices,
T.N.value('Description[1]', 'varchar(max)') as Description
from @XML.nodes('/root/DocInfo') as T(N)
這適用於單節點值(CompanyName,WebsiteUrl)。但是,它沒有正確插入具有多個值的節點(如PrimaryServices和SecondaryServices - 每個節點可能有0到16個節點)。如何將這些可變長度的多個節點值放入這些列中?
感謝所有幫助
謝謝。這會得到xml和值。我如何獲得價值? T – 2013-03-13 19:15:29
@ user971823你想要什麼值?在一列中,單獨的列,單獨的行或其他....或? – 2013-03-13 19:35:07
單列逗號分隔將是理想的。 – 2013-03-13 20:02:46