本篇内容介绍了“数据库实用脚本方法教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、SQLServer脚本

–-计算地球上两个坐标点(经度,纬度)之间距离sql函数CREATEFUNCTION[dbo].[fnGetDistance](@LatBeginREAL,@LngBeginREAL,@LatEndREAL,@LngEndREAL)RETURNSFLOATASBEGIN–-距离(千米)DECLARE@DistanceREALDECLARE@EARTH_RADIUSREALSET@EARTH_RADIUS=6378.137DECLARE@RadLatBeginREAL,@RadLatEndREAL,@RadLatDiffREAL,@RadLngDiffREALSET@RadLatBegin=@LatBegin*PI()/180.0SET@RadLatEnd=@LatEnd*PI()/180.0SET@RadLatDiff=@RadLatBegin-@RadLatEndSET@RadLngDiff=@LngBegin*PI()/180.0-@LngEnd*PI()/180.0SET@Distance=2*ASIN(SQRT(POWER(SIN(@RadLatDiff/2),2)+COS(@RadLatBegin)*COS(@RadLatEnd)*POWER(SIN(@RadLngDiff/2),2)))SET@Distance=@Distance*@EARTH_RADIUSRETURN@DistanceEND--使用方法如下:SELECTdbo.fnGetDistance(25,30,12.56,15.5);

2、MySQl脚本

–-计算地球上两个坐标点(经度,纬度)之间距离sql函数CREATEFUNCTION[dbo].[fnGetDistance](@LatBeginREAL,@LngBeginREAL,@LatEndREAL,@LngEndREAL)RETURNSFLOATASBEGIN–-距离(千米)DECLARE@DistanceREALDECLARE@EARTH_RADIUSREALSET@EARTH_RADIUS=6378.137DECLARE@RadLatBeginREAL,@RadLatEndREAL,@RadLatDiffREAL,@RadLngDiffREALSET@RadLatBegin=@LatBegin*PI()/180.0SET@RadLatEnd=@LatEnd*PI()/180.0SET@RadLatDiff=@RadLatBegin-@RadLatEndSET@RadLngDiff=@LngBegin*PI()/180.0-@LngEnd*PI()/180.0SET@Distance=2*ASIN(SQRT(POWER(SIN(@RadLatDiff/2),2)+COS(@RadLatBegin)*COS(@RadLatEnd)*POWER(SIN(@RadLngDiff/2),2)))SET@Distance=@Distance*@EARTH_RADIUSRETURN@DistanceEND--使用方法如下:SELECTdbo.fnGetDistance(25,30,12.56,15.5);

3、Orcale脚本

CREATEORREPLACEFUNCTIONGetDistance(lat1number,lng1number,lat2number,lng2number)RETURNNUMBERisearth_padiusnumber:=6378.137;radLat1number:=Radian(lat1);radLat2number:=Radian(lat2);anumber:=radLat1-radLat2;bnumber:=Radian(lng1)-Radian(lng2);snumber:=0;begins:=2*Asin(Sqrt(power(sin(a/2),2)+cos(radLat1)*cos(radLat2)*power(sin(b/2),2)));s:=s*earth_padius;s:=Round(s*10000)/10000;returns;end;--使用方法selectGetDistance(25,30,12.56,15.5)fromdual

“数据库实用脚本方法教程”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!