Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL 2008 भूगोल और ज्यामिति - किसका उपयोग करना है?

भूगोल वह प्रकार है जो पृथ्वी पर बिंदुओं को प्लॉट करने के लिए अभिप्रेत है।

यदि आपके पास ऐसी तालिका है जो Google मानचित्र बिंदुओं को इस प्रकार संग्रहीत करती है:

CREATE TABLE geo_locations (
    location_id       uniqueidentifier  NOT NULL,
    position_point    geography         NOT NULL
);

तो आप इसमें इस संग्रहीत कार्यविधि के साथ अंक भर सकते हैं:

CREATE PROCEDURE proc_AddPoint
    @latitude     decimal(9,6),
    @longitude    decimal(9,6),
    @altitude     smallInt
AS

DECLARE @point     geography = NULL;

BEGIN

    SET NOCOUNT ON;

    SET @point = geography::STPointFromText('POINT(' + CONVERT(varchar(15), @longitude) + ' ' + 
                                                       CONVERT(varchar(15), @latitude) + ' ' + 
                                                       CONVERT(varchar(10), @altitude) + ')', 4326)

    INSERT INTO geo_locations
    (
        location_id, 
        position_point
    )
    VALUES 
    (
        NEWID(),
        @point
    );

END

फिर यदि आप अक्षांश, देशांतर और ऊंचाई के लिए क्वेरी करना चाहते हैं, तो बस निम्न क्वेरी प्रारूप का उपयोग करें:

SELECT
    geo_locations.position_point.Lat  AS latitude,
    geo_locations.position_point.Long AS longitude,
    geo_locations.position_point.Z    AS altitude
FROM
    geo_locations;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2014 वृद्धिशील सांख्यिकी

  2. पैरामीटरयुक्त क्वेरी उस पैरामीटर की अपेक्षा करती है जो आपूर्ति नहीं की गई थी

  3. SUBSTRING () फ़ंक्शन का उपयोग करके SQL सर्वर में एक स्ट्रिंग से एक सबस्ट्रिंग कैसे लौटाएं?

  4. साल दर साल रिपोर्ट एसक्यूएल योग, एक शानदार समाधान की तलाश में

  5. SQL सर्वर, डेटा हानि के बिना तालिका बनाने के बाद ऑटो वेतन वृद्धि कैसे सेट करें?