小编Wal*_*ler的帖子

计算两点之间的距离(纬度,经度)

我试图计算地图上两个位置之间的距离.我存储了我的数据:经度,纬度,X POS,Y POS.

我以前使用过下面的代码片段.

DECLARE @orig_lat DECIMAL
DECLARE @orig_lng DECIMAL
SET @orig_lat=53.381538 set @orig_lng=-1.463526
SELECT *,
    3956 * 2 * ASIN(
          SQRT( POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180 / 2), 2) 
              + COS(@orig_lng * pi()/180 ) * COS(abs(dest.Latitude) * pi()/180)  
              * POWER(SIN((@orig_lng - dest.Longitude) * pi()/180 / 2), 2) )) 
          AS distance
--INTO #includeDistances
FROM #orig dest
Run Code Online (Sandbox Code Playgroud)

不过我不相信这个数据,它似乎给出了稍微不准确的结果.

一些示例数据,以备您需要时使用

Latitude        Longitude     Distance 
53.429108       -2.500953     85.2981833133896
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决我的代码,我不介意你是否想要修复我已经拥有的东西,如果你有一种新方法可以实现这一点,那就太棒了.

请说明您的结果所在的计量单位.

sql t-sql sql-server math sql-server-2008-r2

82
推荐指数
5
解决办法
16万
查看次数

SQL字符串操作[获取'('')的所有文本

我有一些看起来像这样的数据:

SourceOfBooking
----------------
Company1 (Foo)
Company2 (Bar)
Company3 (Foo1)
Company4 (Foo2)
Run Code Online (Sandbox Code Playgroud)

我想转换它,所以我的数据只显示:

SourceOfBooking
----------------
Company1
Company2
Company3
Company4
Run Code Online (Sandbox Code Playgroud)

我试过了:

LEFT(SourceOfBooking, CHARINDEX(';', SourceOfBooking) )
Run Code Online (Sandbox Code Playgroud)

没有运气.

我敢肯定我错过了一些非常简单的事情......有人关心启发吗?

KR,詹姆斯.

sql t-sql sql-server

6
推荐指数
2
解决办法
3万
查看次数

SSIS更改变量范围

如何创建具有范围的变量?这只是给我一个我不想要的默认值,我不确定如何更改。这应该很简单,并且Google搜索使我相信这是一个很普遍的问题,但是没有简单的解决方案。

imgur:http ://imgur.com/uxlRf

ssis

5
推荐指数
2
解决办法
2万
查看次数

MS Access DB on network with multiple users

I have an MS Access database on a network drive with a userform which has multiple users (All using at the same time)

The form runs an update-query which will add data into a raw data table.

如果两个(或更多)用户同时运行更新查询,是否有人知道如何使这项工作?我假设必须使用临时表来完成...

谢谢,詹姆斯

ms-access vba access-vba

3
推荐指数
1
解决办法
2765
查看次数

SQL REPLACE函数,如何替换单个字母

我的代码如下:

REPLACE(REPLACE(cc.contype,'x','y'),'y','z') as ContractType,
Run Code Online (Sandbox Code Playgroud)

这个REPLACE是正确的我想要的,但它不幸的是当我想要时将所有"z"改为"y"

x> y
y> z

这有意义吗?我不希望所有新的Y在我的第二个REPLACE函数中再次改变.在Microsoft Access中,我将使用以下内容执行此操作

Iif(cc.contype = x,y,iif(cc.contype = y,x))

但我不确定如何在SQL中表达这一点,我最好用客户端语言做这种事情吗?

非常感谢.

编辑:也试过没有运气:

       CASE WHEN SUBSTRING(cc.contype, 1, 1) = 'C'
        THEN REPLACE(cc.contype, 'C', 'Signed')
       CASE WHEN SUBSTRING(cc.contype, 1, 1) = 'E'
        THEN REPLACE(cc.contype, 'E', 'Estimate') as ContractType,
Run Code Online (Sandbox Code Playgroud)

sql sql-server

3
推荐指数
1
解决办法
4313
查看次数

计算两个满足GEOGRAPHY点的表格之间的距离

我正在使用SQL Server.

我有两个这样的表:

表1:

Column1, Column2, Column3, GeoLoc
-----------------------------------
a        b        c        0xE61...
Run Code Online (Sandbox Code Playgroud)

表2:

Column1, Column2, Column3, GeoLoc 
-----------------------------------
a        b        c        0xE62...
Run Code Online (Sandbox Code Playgroud)

我希望得到一个输出表,它将比较两个表中的所有点,并告诉我哪里table1有一个GeoLoc在X距离内GeoLoc的位置table2.

有谁知道如何去做?一个表有大约800行,另一个表有大约300,000行.我甚至难以开始......

sql sql-server sqlgeography

2
推荐指数
1
解决办法
2114
查看次数

T-SQL:如何转换日期的字符串表示

我有一些以varchar(10)格式存储的日期.

日期是这样的:

2008-01-06
2008-01-13
2008-01-20
2008-01-27
2008-02-03
2008-02-10
2008-02-17
2008-02-24
Run Code Online (Sandbox Code Playgroud)

我想用dd/mm/yyyy格式(也是DATE数据类型)

我尝试过以下方法:

SELECT CONVERT(VARCHAR(max), startWeek, 103) date
FROM dbo.GoogledataFinal
Run Code Online (Sandbox Code Playgroud)

为什么这个输出:

2008-01-06
2008-01-13
2008-01-20
2008-01-27
2008-02-03
2008-02-10
2008-02-17
Run Code Online (Sandbox Code Playgroud)

如果你可以修复我的代码会很棒,但我更感兴趣的是为什么这种行为正在发生,所以像我5岁那样的解释可能会有所帮助.

sql t-sql

0
推荐指数
1
解决办法
354
查看次数