Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wielokąt SQL Spatial na lewą stronę

Możesz sprawdzić, czy wynik EnvelopeAngle() metoda dla geografii wynosiła 180, a następnie użyj ReorientObject() funkcja, aby to poprawić.

Oto przykład:

--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))

EDYTUJ jak podano w komentarzach, możesz poprawić bieżące geometrie za pomocą prostego polecenia aktualizacji (jeśli jesteś pewien, że nie są one poprawne):

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. Zezwalaj na znaki specjalne SQL Server 2008

  2. 2 sposoby na zwrócenie listy połączonych serwerów w SQL Server przy użyciu T-SQL

  3. Klubować rzędy w dni powszednie

  4. Szybkie porady dotyczące naprawy i przywracania bazy danych SQL bez kopii zapasowej

  5. Zapytanie, aby sprawdzić, czy kolumna jest dopuszczalna do wartości null