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

ज्यामिति प्रकार से एक्स और वाई के साथ दृश्य उत्पन्न करें

मुझे नहीं लगता कि आप इसे एक दृश्य में कर सकते हैं लेकिन आप जो चाहते हैं उसे प्राप्त करने के लिए आप एक तालिका-मूल्यवान उपयोगकर्ता परिभाषित फ़ंक्शन (एक फ़ंक्शन जो एक तालिका देता है) बना सकते हैं।

यह उदाहरण

. के रूप में परिभाषित तालिका का उपयोग करता है
CREATE TABLE GeoTable (GeomKey int, vector GEOMETRY)

जो विभिन्न ज्यामिति प्रकारों को संग्रहीत करता है (उदाहरण के लिए मैंने नीचे लिंक किया है जिसमें मैंने POINT, MULTIPOINT, LINESTRING और POLYGON का उपयोग किया है)।

CREATE FUNCTION dbo.GetVertices()
RETURNS @ret TABLE (GeomKey INT, X INT, Y INT, PointNo INT)
AS
BEGIN
    DECLARE @max INT
    SET @max = (SELECT MAX(vector.STNumPoints()) FROM GeoTable) 

    ;WITH Sequence(Number) AS
    (
        SELECT 1 AS Number
        UNION ALL
        SELECT Number + 1
        FROM Sequence
        WHERE Number < @max
    )
    INSERT INTO @ret 
    SELECT
        gt.GeomKey
        ,gt.vector.STPointN(nums.number).STX AS X
        ,gt.vector.STPointN(nums.number).STY AS Y
        ,nums.number AS PointNo
    FROM GeoTable gt, Sequence nums
    WHERE nums.number <= gt.vector.STNumPoints()
    RETURN
END;

इसे देखें नमूना SQL Fiddle एक पूर्ण कामकाजी उदाहरण के लिए।




  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 सर्वर में "अंकगणित अतिप्रवाह त्रुटि पहचान को डेटा प्रकार में परिवर्तित करना ..." को ठीक करें

  2. फ़ाइल सिस्टम में फ़ाइलों के रूप में SQL सर्वर डेटाबेस ऑब्जेक्ट को एक्सपोज़ करना

  3. मुझे कैसे पता चलेगा कि विदेशी कुंजी उल्लंघन के कारण SQLException को फेंक दिया गया था?

  4. SQL सर्वर 2019 का पहला सार्वजनिक पूर्वावलोकन:CTP 2.0

  5. अपने प्राथमिक क्षेत्र के रूप में ऑटो वेतन वृद्धि के साथ जोड़ने के लिए संग्रहीत कार्यविधि बनाएं?