Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Hasilkan tampilan dengan X dan Y dari tipe geometri

Saya tidak berpikir Anda dapat melakukan ini dalam tampilan tetapi Anda dapat membuat fungsi yang ditentukan pengguna bernilai tabel (fungsi yang mengembalikan tabel) untuk mendapatkan apa yang Anda inginkan.

Contoh ini menggunakan tabel yang didefinisikan sebagai

CREATE TABLE GeoTable (GeomKey int, vector GEOMETRY)

yang menyimpan berbagai jenis geometri (dalam contoh yang saya tautkan di bawah ini, saya menggunakan POINT, MULTIPOINT, LINESTRING, dan 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;

Lihat contoh SQL Fiddle ini untuk contoh kerja yang lengkap.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pertahankan waktu henti tabel seminimal mungkin dengan mengganti nama tabel lama, lalu mengisi versi baru?

  2. sql server menampilkan tanggal yang hilang

  3. Bergabung dengan pelanggan dan tabel tag

  4. PILIH kueri dengan beberapa sub-kueri untuk jumlah

  5. SQL 'LIKE' query menggunakan '%' di mana kriteria pencarian berisi '%'