2

我需要在我的数据库中填充纬度和经度列,但是原始信息存储为单个字符串

例如。

UDFChar1 = 41.243223,-8.183913

我猜 TRIM 命令在这里会派上用场,但我不知道如何告诉它在每一半的逗号上完全停止。

我希望能够想出的是一个简单的 UPDATE 查询,如下所示:

UPDATE Asset
SET Lattitude = (SELECT LTRIM(UDFChar1)),
Longitude = (SELECT RTRIM(UDFChar1))

但显然在 LTRIM 和 RTRIM 部分有一些额外的工作,所以我只选择数据,而不包括 UDFChar1 中的逗号

关于如何实现这一目标的任何想法?

4

1 回答 1

18

请试试:

left(Col, charindex(',', Col)-1)

right(Col, len(Col)-charindex(',', Col))

样本

SELECT 
    LEFT(COL, CHARINDEX(',', Col)-1) Lattitude, 
    RIGHT(COL, LEN(COL)-CHARINDEX(',', Col)) Longitude
 FROM(
    SELECT '41.243223,-8.183913' Col
)x
于 2013-02-13T11:47:17.307 回答