2015-06-09 52 views
-4

我是TSQL的新手,并且正在尝试创建一个计算经度并给出半径的函数。我知道该怎么做,在C#中,但现在有困难,将其转化为T-SQL,这是多部分功能有没有办法创建一个像这样的用户定义函数

1. double Long = (Math.Cos((double)2.55 * (Math.PI/180)) * 69); 
    2. double milesss = 10/Long; 
    3. item.TenLonMin = Math.Round(((double)item.longitudes - milesss), 6); 

回答所有的这是第3步,我想提出的是这里面

UPDATE zips 
SET 
TwoLonMax= answer to step 3 here 

我该如何去做这件事?我试图找出如何插入用户定义函数的结果。

+0

您是否看过用于创建标量函数的[documentation](https://msdn.microsoft.com/en-us/library/ms186755.aspx)?提示:使用适当的软件(MySQL,Oracle,DB2,...)和版本(例如, '的SQL服务器2014'。语法和功能的差异往往会影响答案。我假设你使用的是某种版本的SQL Server。 – HABO

+0

对不起,现在会阅读它,是的,它是MYSQL 2012.我对此很新,并认为不同版本之间TSQL有很大差异。 – user1591668

回答

1

是的,你可以做到这一点的T-SQL,但是它的性能会很差,C#,C++和大多数编程语言比较:

CREATE FUNCTION GET_ITEM_TENLONMIN(@LONGITUDES FLOAT) 
RETURNS FLOAT 
AS 
BEGIN 
DECLARE @LONG FLOAT; 
SET @LONG=COS(2.55 * (PI()/180)) * 69; 
DECLARE @MILESSS FLOAT; 
SET @MILESSS = 10/@LONG; 
RETURN @LONGITUDES - @MILESSS; 
END; 

我只是用自己的计算方法。

+0

它看起来像你试图重新发明轮子! SQL Server包含空间数据类型(如地理数据类型),并已包含所有计算和使用此类型的函数,如计算经度。点击此链接: https://msdn.microsoft.com/en-us/library/bb964711.aspx –

相关问题