我在SQL Server的varchar(max)列中具有此值:
<VersionSeries><SeriesTypeIdList><int>3</int><int>4</int><int>2</int><int>29</int><int>31</int><int>32</int><int>39</int></SeriesTypeIdList></VersionSeries
我想将int值放入表中。
这是我的代码,但只返回找到的第一条记录。
Declare @Version varchar(100)
Select @Version = '2016A Demo'
DECLARE @DataTable TABLE
(
Xml XML NOT NULL,
Code NVARCHAR(50) NULL
)
INSERT
INTO @DataTable(Xml)
SELECT
CONVERT(XML,CONVERT(NVARCHAR(max), Series))
FROM Version
where VersionName = @Version
Create table #SeriesCodes
(Code integer)
Insert Into #SeriesCodes
(Code)
SELECT
T.c.value('int[1]', 'nvarchar(50)') as Code
FROM @DataTable d
OUTER APPLY d.Xml.nodes('/VersionSeries/SeriesTypeIdList') T(c);
Select * from #SeriesCodes
这是一条简单的语句即可获得您想要的:
DECLARE @x2 XML = N'<VersionSeries><SeriesTypeIdList><int>3</int><int>4</int><int>2</int><int>29</int><int>31</int><int>32</int><int>39</int></SeriesTypeIdList></VersionSeries>';
SELECT t.c.query(N'.').value(N'(/*)[1]', N'int') AS [int_value]
FROM @X2.nodes(N'/VersionSeries/SeriesTypeIdList/*') AS [t]([c]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句