在 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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中将 long 转换为字节

大圆距离公式:T-SQL

如何在java中将十六进制字符串转换为long?

快速将 PFGeoPoint Lat 和 Long 从 Parse 转换为 CLLocation Lat 和 Long

是否有 API 将 long/lat 转换为城市、国家而不是 Google API [关闭]

php Lat Long转换为导入