有人可以帮助我使用存储过程或函数将存储的varchar
lat; lng传递给个人字段,如float和Lat和Lng用于半径搜索。SQL Server lat; lng varchar拆分程序使用Lat和Lng作为搜索速度搜索
lanlng in Table
33.0000;15.222222
感谢
有人可以帮助我使用存储过程或函数将存储的varchar
lat; lng传递给个人字段,如float和Lat和Lng用于半径搜索。SQL Server lat; lng varchar拆分程序使用Lat和Lng作为搜索速度搜索
lanlng in Table
33.0000;15.222222
感谢
的功能,你只是想分割字符串?如果是这样的话:
declare @LatLng varchar(100)
set @LatLng = '33.0000;15.222222'
declare @Lat float
declare @Lng float
select @Lat = CAST(LEFT(@LatLng, charindex(';',@LatLng)-1) as float)
select @Lng = CAST(SUBSTRING(@LatLng, charindex(';',@LatLng)+1, LEN(@LatLng)-charindex(';',@LatLng)) as float)
select @Lat as Latitude, @Lng as Longitude
我有类似的程序,谢谢,但我的表不是Latitude1和Longitude1,但在一个varchar字段Latitude1; Longitude1。如何传入存储的prodecure分割并在飞行中投射? – user325558 2010-10-06 15:04:47
Joe,这对于输入值是正确的,但是在WHERE(@R * 2 * ATN2(SQRT((SIN((RADIANS(CAST(LEFT(GeoLatLng, charindex(';',GeoLatLng)-1)as float) - @ lat2Compare))/ 2)没有更好的方法吗? – user325558 2010-10-06 15:20:22
你可能有几个选项。 。编写用户定义的函数来封装字符串分割并在where子句中使用这些函数。 – 2010-10-06 16:01:31