如何使用Postgresql中的存储过程实现这一点?
我正在计算逐步执行此查询的坐标之间的距离如何使用Postgresql中的存储过程实现这一点?,sql,postgresql,stored-procedures,Sql,Postgresql,Stored Procedures,我正在计算逐步执行此查询的坐标之间的距离 /*insert into clients_res(select clients.pid, clients.owner_id, dist.country, dist.city, dist.distance, clients.inwork from clients left outer join dist on clients.pid = dist.pid); */ 四, /*更新客户端\u res set-inwork=0 其中距离>0*/
四, /*更新客户端\u res set-inwork=0 其中距离>0*//*insert into clients_res(select clients.pid, clients.owner_id, dist.country, dist.city, dist.distance, clients.inwork from clients left outer join dist on clients.pid = dist.pid); */
如何将其转换为过程?您是否考虑过使用PostGIS进行计算?你至少应该为可读性定义自己的函数不,我没有使用PostGIS。我只需要博士后来做。 select *, cast(ATAN(SQRT(power((COS(tmp11.lat*PI()/180)*SIN(city.lon1*PI()/180-tmp11.lon*PI()/180)),2)+power((COS(city.lat1*PI()/180) *SIN(tmp11.lat*PI()/180)-SIN(city.lat1*PI()/180)*COS(tmp11.lat*PI()/180)*COS(city.lon1*PI()/180-tmp11.lon*PI()/180)),2))/ (SIN(city.lat1*PI()/180)*SIN(tmp11.lat*PI()/180)+COS(city.lat1*PI()/180)*COS(tmp11.lat*PI()/180)*COS(city.lon1*PI()/180-tmp11.lon*PI()/180)))*6372795 as int) as distance into dist from tmp11 inner join city on cast(ATAN(SQRT(power((COS(tmp11.lat*PI()/180)*SIN(city.lon1*PI()/180-tmp11.lon*PI()/180)),2)+power((COS(city.lat1*PI()/180) *SIN(tmp11.lat*PI()/180)-SIN(city.lat1*PI()/180)*COS(tmp11.lat*PI()/180)*COS(city.lon1*PI()/180-tmp11.lon*PI()/180)),2))/ (SIN(city.lat1*PI()/180)*SIN(tmp11.lat*PI()/180)+COS(city.lat1*PI()/180)*COS(tmp11.lat*PI()/180)*COS(city.lon1*PI()/180-tmp11.lon*PI()/180)))*6372795 as int) between 0 and 60000
/*update clients_res set inwork=0 where distance>0;*//*insert into clients_res(select clients.pid, clients.owner_id, dist.country, dist.city, dist.distance, clients.inwork from clients left outer join dist on clients.pid = dist.pid); */