如何获取SQL列中数组的第一个元素?

如何获取SQL列中数组的第一个元素?,sql,arrays,Sql,Arrays,我有一个SQL列(名为COL),其文本类型和值格式为多个数组(多维)的矩阵,格式如下: 在我的例子中,我有以下示例(为此,我仅使用了2个维度): 如何获取每个数组的“LineId”元素。所以,我的结果应该是这样的: | ID | COL | --------------------------------- | 1 | "LineId":701,"LineId":700 | 在“提取”上述元素后,我们如何再次从中提取数字,如下所示: | ID |

我有一个SQL列(名为COL),其文本类型和值格式为多个数组(多维)的矩阵,格式如下:

在我的例子中,我有以下示例(为此,我仅使用了2个维度):

如何获取每个数组的“LineId”元素。所以,我的结果应该是这样的:

| ID |            COL           |
---------------------------------
|  1 | "LineId":701,"LineId":700 |
在“提取”上述元素后,我们如何再次从中提取数字,如下所示:

| ID |   COL   |
----------------
|  1 | 700,701 |

对于SQL Server,我希望在字符串函数的帮助下使用
xml
节点方法(即
substring()
charindex()
,等等)


对于SQL Server,我希望在字符串函数的帮助下使用
xml
节点方法(即
substring()
charindex()
,等等)


您使用什么类型的DBMS?您想要查询还是使用java?您是否可以选择重新创建表,这样就不会在列中存储数组?您使用什么类型的DBMS?您想要查询还是使用java?您是否可以选择重新创建表,这样就不会在列中存储数组?非常感谢。这个版本的查询正是我需要的。非常感谢。这个版本的查询正是我所需要的。
| ID |   COL   |
----------------
|  1 | 700,701 |
;with cte as
(
          select 
             m.id, a.value('.', 'nvarchar(max)') [col] from 
       (
          SELECT ID, CAST('<m>'+REPLACE(CAST(COL as nvarchar(max)), ',', '</m><m>')+'</m>' as xml) as [col] FROM <table>
       ) m cross apply col.nodes ('/m') as split(a) where a.value('.', 'nvarchar(max)') like '%LineId%'
), cte1 as
(
    select id, REVERSE(SUBSTRING(REVERSE(col), 1, CHARINDEX(':', REVERSE(col))-1)) [col] from cte
)
select 
       id,
       col = STUFF(
                    (select ','+[col] from cte1 where id = c1.id ORDER BY [col] for xml path('')),
                    1,1,''
                )
        from cte1 c1 group by c1.id
id  col
1   700, 701