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

SQL Spatial polygon từ trong ra ngoài

Bạn có thể kiểm tra xem kết quả của EnvelopeAngle() cho địa lý là 180, sau đó sử dụng ReorientObject() chức năng để sửa nó.

Đây là mẫu:

--A CW polygon
DECLARE @G3 GEOGRAPHY = 'POLYGON ((45 45, 44 45, 44 46, 45 46, 45 45))';    
SELECT @G3.EnvelopeAngle();                --180
SELECT @G3.ReorientObject().STAsText();    --POLYGON ((44 46, 44 45, 45 45, 45 46, 44 46))

CHỈNH SỬA như đã nêu trong các nhận xét, bạn có thể sửa các hình dạng hiện tại bằng cách sử dụng lệnh cập nhật đơn giản (trong trường hợp bạn chắc chắn rằng chúng không đúng):

UPDATE foo_table SET bar_column = bar_column.ReorientObject() 
    WHERE bar_column.EnvelopeAngle() > 90


  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 đã xảy ra sự cố khi gửi lệnh tới chương trình

  2. Khi nào tôi có thể lưu trữ IIS và SQL Server trên cùng một máy?

  3. Làm cách nào để thêm chuỗi có giá trị tăng tự động trong SQL Server?

  4. Lỗi SQL Server 7222:“Chỉ nhà cung cấp SQL Server mới được phép trên trường hợp này”

  5. Truy vấn so sánh ngày tháng trong SQL