sql - 如何在SQL Server 2012中的10个不同节点中转换这个字符串?

标签 sql sql-server xml sql-server-2012

我的字符串是 =

[10, 1],[7, 3],[15, 4],[10, 1],[14, 1]

如何将其转换为10个不同的节点/值?我目前的尝试是这样的

select  CAST('<A>'+REPLACE(REPLACE( REPLACE(REPLACE('[10, 1],[7, 3],[15, 4],[10, 1],[14, 1]', '[', ''), ']', ''),',',''),' ','</A><A>')+'</A>' AS XML) AS Data 

答案=

<A>10</A><A>17</A><A>315</A><A>410</A><A>114</A><A>1</A>

我希望它是 10 个节点/值,而不是上面。我应该如何在 sql server 2012 中执行此操作?

最佳答案

评论太长了

select REPLACE(REPLACE(REPLACE(@data, '],[', ''), '[', ''), ']', '')

结果:

10, 17, 315, 410, 114, 1

编辑:

您似乎只是在寻找值(value)

select LTRIM(REPLACE(REPLACE(a.value('.', 'VARCHAR(30)'), '[', ''), ']', '')) [Data] from
(
    select  CAST('<A>'+REPLACE('[10, 1],[7, 3],[15, 4],[10, 1],[14, 1]', ',', '</A><A>')+'</A>' AS xml) AS Data 
)a cross apply Data.nodes ('/A') as split(a)

结果:

Data
10
1
7
3
15
4
10
1
14
1

关于sql - 如何在SQL Server 2012中的10个不同节点中转换这个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47789282/

相关文章:

php - 将php数组转换成xml文件

xml - 开源 DocBook 编辑器

sql - SQL Server 如何对多列进行 UnPivot

c# - Lambda 表达式 同时选择 Min 和 Max

SQL 服务器 : split multiple strings into one row each

sql-server - 使用 .Net Core 2.0 应用程序中的 .dacpac 文件部署数据库

sql - 将 Sybase ASE 特定的 *= 和 =* 转换为 LEFT/RIGHT OUTER JOIN

mysql - 如何根据不同的值对 MySQL 结果进行排名?

c# - View 上的 Entity Framework 导航属性

java - Veracode XML 外部实体引用 (XXE) 解码 org.w3c.dom.Element