我使用SQL Server 2008 R2,我需要將一列多點轉換爲行。我嘗試了各種地理特徵,但沒有成功......SQL Server 2008 R2 - 如何將多點轉換爲線?
例如:
declare @f varchar(max);
declare @g geography;
set @f = (SELECT replace((SUBSTRING(T.ROUTEM.ToString(),11,9999999)),'(','')
FROM dbo.TRAVELS T WHERE T.ID_TRAVEL = 74063);
set @f = (SELECT replace(@f,')', ''));
set @f = (SELECT 'LINESTRING (' + @f + ')');
set @g = geography::STLineFromText(@f,4326);
select @g;
從SQL Server的回報是:
A .NET Framework error occurred during execution of user-defined routine or aggregate "geography":
System.ArgumentException: 24200: The specified input does not represent a valid geography instance.
System.ArgumentException:
at Microsoft.SqlServer.Types.SqlGeography.ConstructGeographyFromUserInput(GeoData g, Int32 srid)
at Microsoft.SqlServer.Types.SqlGeography.GeographyFromText(OpenGisType type, SqlChars taggedText, Int32 srid)*
如果有人幫助我,我將不勝感激。
PS:STLineFromText有沒有限制點數?
你能告訴我們一些你的數據嗎? –
我可以,但這個問題是關於如何將一個字段地理與多點信息轉換爲線串。 我設法使用幾何函數MakeValid()來轉換場中的線串,但由於我需要經緯度,所以這種轉換不適合我。 你想看什麼樣的信息? –