在 T-SQL 中将 Lat Long 反转为 Long Lat [关闭]
Posted
技术标签:
【中文标题】在 T-SQL 中将 Lat Long 反转为 Long Lat [关闭]【英文标题】:Reverse Lat Long to Long Lat in T-SQL [closed] 【发布时间】:2018-03-14 01:44:32 【问题描述】:我收到了 CSV 格式的 mysql 空间数据。几何字段包含纬度和经度值,但我需要按该顺序将其交换为经度和纬度,因此我可以在 TSQL 中将其视为众所周知的文本。这可以转换吗?
例如
-38.24915 145.04892, -38.24912 145.0488, -38.24903 145.04883, -38.24906 145.04895
需要
145.04892 -38.24915, 145.0488 -38.24912, 145.04883 -38.24903, 145.04895 -38.24906
谢谢
【问题讨论】:
您说“MySQL”,但使用 T-SQL 标记,这是 SQL 的 MS SQL Server 方言。请适当标记您的问题 - 您使用的是哪个 RDBMS? 【参考方案1】:为了好玩,我整理了一个 SQL Server 2017 解决方案。这可能会帮助您入门。
DECLARE @yourstring varchar(1000) =
'-38.24915 145.04892, -38.24912 145.0488, -38.24903 145.04883, -38.24906 145.04895';
SELECT STRING_AGG(SUBSTRING(item,11,100) + ' ' + SUBSTRING(item,1,10),', ')
FROM
(
SELECT item = TRIM([value])
FROM STRING_SPLIT(@yourstring,',')
) split1;
返回:
145.04892 -38.24915 , 145.0488 -38.24912 , 145.04883 -38.24903 , 145.04895 -38.24906
【讨论】:
SUBSTRING(item,1,9),', ')
似乎把逗号塞到了Lat
旁边。不错的解决方案!
谢谢大家,但我们拥有的最新版本是 SQL Server 2016。2017 之前的 SQL 是否有替代方法?以上是关于在 T-SQL 中将 Lat Long 反转为 Long Lat [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
快速将 PFGeoPoint Lat 和 Long 从 Parse 转换为 CLLocation Lat 和 Long