如何获得LineString中的点的索引?
我正在使用SQL Server 2008 R2。
我确实有一个地理类型,其中保存了一个LineString
我现在想要在此 LineString 上获得两点的索引。所以我知道哪个首先出现
这有点可能吗?
因为现在我正在为我自己做一个while循环...但是当我在我的数据库中有更多数据时它真的很慢:/
编辑:好的,现在我正在尝试按照SQL的解决方案使用CHARINDEX。
更多背景信息:
我确实有一个地理位置,我有一个线串。我确实从线串得到了我的点周围半径的交叉点。好的,现在我想尝试从 LineString 上的第一个交叉点到索引。
问题是, STIntersection 给了我一些不同的数字返回变量在小数位数。我想过一些字符串格式,但我不知道我应该如何解决这个问题。如果有一些很好的正则表达式功能,我认为它会让我的生活更轻松:)
我查看了所有这些functions但找不到任何符合我需求的内容。
也许一些经验丰富的人可以帮助我。
谢谢!
答案 0 :(得分:1)
如果数据类型是varchar使用。请参阅下文。
您可以使用CharIndex
DECLARE @document varchar(64)
SELECT @document = 'abcdef12345wuerzelchen'
SELECT CHARINDEX('abc', @document)
获得第一个出现点后,现在可以检查另一个出现点。
Declare @position int
Set @position = CHARINDEX('abc', @document)
SELECT CHARINDEX('wuerzelchen', @document, @position)
有关详细信息,请查看here