C# sql查询纬度和经度
我有这张桌子C# sql查询纬度和经度,c#,asp.net,sql,sql-server,tsql,C#,Asp.net,Sql,Sql Server,Tsql,我有这张桌子 CREATE TABLE [dbo].[EnquiryMaster]( [EnquiryId] [int] IDENTITY(1,1) NOT NULL, [orgid] [int] NULL, [uid] [int] NULL, [Company] [varchar](160) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [HeadOfficeAddress] [varchar](460) COLL
CREATE TABLE [dbo].[EnquiryMaster](
[EnquiryId] [int] IDENTITY(1,1) NOT NULL,
[orgid] [int] NULL,
[uid] [int] NULL,
[Company] [varchar](160) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[HeadOfficeAddress] [varchar](460) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[ZipCode] [varchar](6) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Latitude] [float] NOT NULL,
[Longitude] [float] NOT NULL,
CONSTRAINT [PK_EnquiryMaster] PRIMARY KEY CLUSTERED
(
[EnquiryId] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
我想写一个查询,这样它将显示我将从下拉列表中选择的公司100度纬度和经度范围内的所有公司。试试这个
select *
from [dbo].[EnquiryMaster]
where (Latitude <= @lat and Longitude <= @long
and Latitude + 100 >= @lat and Longitude +100 >= @long)
OR (Latitude >= @lat and Longitude >= @long
and Latitude - 100 <= @lat and Longitude -100 <= @long)
OR (Latitude >= @lat and Longitude <= @long
and Latitude - 100 <= @lat and Longitude + 100 >= @long)
OR (Latitude <= @lat and Longitude >= @long
and Latitude + 100 >= @lat and Longitude - 100 <= @long)
选择*
来自[dbo]。[InquiryMaster]
其中(纬度=@long)
或者(纬度>=@lat,经度>=@long
和纬度-100
where Latitude between @lat - 100 and @lat + 100
and Longitude between @long - 100 and @long + 100