Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tạo chế độ xem với X và Y từ kiểu hình học

Tôi không nghĩ rằng bạn có thể làm điều này trong một chế độ xem nhưng bạn có thể tạo một hàm do người dùng xác định có giá trị bảng (một hàm trả về một bảng) để có được những gì bạn muốn.

Ví dụ này sử dụng một bảng được định nghĩa là

CREATE TABLE GeoTable (GeomKey int, vector GEOMETRY)

nơi lưu trữ các loại hình học khác nhau (trong ví dụ tôi liên kết bên dưới, tôi đã sử dụng POINT, MULTIPOINT, LINESTRING và 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;

Xem SQL Fiddle mẫu này để có một ví dụ làm việc hoàn chỉnh.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. khóa ngoại và vấn đề chỉ mục

  2. Cập nhật một bước công việc cho một công việc đại lý máy chủ SQL (T-SQL)

  3. Thói quen xấu:Tránh NULL trong SQL Server

  4. làm thế nào để giải quyết vấn đề bế tắc?

  5. Các vấn đề về hiệu suất với SQL Server 2012 Enterprise Edition theo cấp phép CAL