【问题标题】:sql query latitude and longitudesql查询经纬度
【发布时间】:2013-02-25 06:44:45
【问题描述】:

我有这张桌子

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 度纬度和经度内的所有公司。

【问题讨论】:

    标签: c# asp.net sql sql-server tsql


    【解决方案1】:

    试试这个

    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)
    

    【讨论】:

      【解决方案2】:
      where Latitude  between @lat  - 100 and @lat  + 100
      and   Longitude between @long - 100 and @long + 100
      

      【讨论】:

        猜你喜欢
        • 2013-12-29
        • 2012-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多