Sql server 多行字符串到线字符串

Sql server 多行字符串到线字符串,sql-server,spatial,Sql Server,Spatial,我正在寻找一种使用MS SQL的空间函数将多行字符串拆分为多个行字符串的方法。在我的表中,我有一个列几何图形,它使使用.ToString()函数很容易获得字符串值。但是我正在寻找多字符串分为行字符串函数。 请问你有什么想法吗 编辑: declare @g geometry = 'LINESTRING(1 1, 2 3, 4 8, -6 3, 5 2, -4 15)'; select geometry::STLineFromText(concat('LINESTRING(', @g.STPo

我正在寻找一种使用MS SQL的空间函数将多行字符串拆分为多个行字符串的方法。在我的表中,我有一个列几何图形,它使使用.ToString()函数很容易获得字符串值。但是我正在寻找多字符串分为行字符串函数。 请问你有什么想法吗

编辑:

declare @g geometry = 'LINESTRING(1 1, 2 3, 4 8, -6 3, 5 2, -4 15)';

select 
geometry::STLineFromText(concat('LINESTRING(', @g.STPointN(n.rownum).STX, ' ', @g.STPointN(n.rownum).STY, ',', @g.STPointN(n.rownum+1).STX, ' ', @g.STPointN(n.rownum+1).STY, ')'), 0)
from
(
    select top (@g.STNumPoints()-1) row_number() over(order by @@spid) as rownum
    from sys.all_objects
) as n;
我还有一个问题,当我有一个很长的行字符串时,我想把它们分割成几个较短的行,如下图所示,这可能吗

编辑:

declare @g geometry = 'LINESTRING(1 1, 2 3, 4 8, -6 3, 5 2, -4 15)';

select 
geometry::STLineFromText(concat('LINESTRING(', @g.STPointN(n.rownum).STX, ' ', @g.STPointN(n.rownum).STY, ',', @g.STPointN(n.rownum+1).STX, ' ', @g.STPointN(n.rownum+1).STY, ')'), 0)
from
(
    select top (@g.STNumPoints()-1) row_number() over(order by @@spid) as rownum
    from sys.all_objects
) as n;
编辑:

declare @g geometry = 'LINESTRING(1 1, 2 3, 4 8, -6 3, 5 2, -4 15)';

select 
geometry::STLineFromText(concat('LINESTRING(', @g.STPointN(n.rownum).STX, ' ', @g.STPointN(n.rownum).STY, ',', @g.STPointN(n.rownum+1).STX, ' ', @g.STPointN(n.rownum+1).STY, ')'), 0)
from
(
    select top (@g.STNumPoints()-1) row_number() over(order by @@spid) as rownum
    from sys.all_objects
) as n;

谢谢你的快速回复,我会检查一下,然后再问你一些问题,但真的很感谢,这帮了我很大的忙,但我还有一个棘手的问题。我编辑了我的前一个问题你能看一下吗?谢谢你的快速回复,我会检查一下,然后再问你一些问题,但真的谢谢你,这帮了我很大的忙,但我还有一个棘手的问题。我编辑了我的前一个问题你能看一下吗?谢谢