Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Географски тип данни срещу Геометричен тип данни в SQL Server

Типът география е малко по-рестриктивен от геометрията. Не може да пресича различни полукълба и външният пръстен трябва да бъде начертан обратно на часовниковата стрелка.

За съжаление (някои намират това за добро), SQL Server 2012 вече не извежда грешка, когато създавате невалидна география. Трябва да обърнете реда на точките в геометрията на остров Робен, като:

DECLARE @robben_island geography = ('POLYGON((18.351803 -33.788421, 18.354464 -33.822369,18.386736 -33.820515, 18.382788 -33.787494, 18.351803 -33.788421))')
DECLARE @point_in_robben_island geography= ('POINT(18.369226 -33.80554)')
DECLARE @point_in_alcatraz geography= ('POINT(-122.423401 37.827006)')

SELECT @robben_island.STContains(@point_in_robben_island)   --returns 'True'
SELECT @robben_island.STContains(@point_in_alcatraz)        --returns 'False'



  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 Server Management Studio

  3. RAND() Примери в SQL Server

  4. Разлика между тригерите FOR и AFTER?

  5. Намерете не-ASCII знаци в колони varchar с помощта на SQL Server