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

Съхраняване на колона „Точка“ от ShapeFile

Бих предложил да съхраните целия многоъгълник като геометричен тип. Ако/когато трябва да го „конвертирате“ в география, използвайте методите за география STNumPoints и STPointN, за да извлечете отделните точки последователно и да ги конвертирате, както е подходящо.

Говорейки за преобразуването, в какъв формат са вашите данни сега? Не виждам информация за ширина/дължина там, но може би пропускам нещо.

Редактиране:Ето решение, което току-що кодирах.

use tempdb;
create table tally (i int not null);
with 
    a as (select 1 as [i] union select 0),
    b as (select 1 as [i] from a as [a1] cross join a as [a2]),
    c as (select 1 as [i] from b as [a1] cross join b as [a2]),
    d as (select 1 as [i] from c as [a1] cross join c as [a2]),
    e as (select 1 as [i] from d as [a1] cross join d as [a2])
insert into tally
select row_number() over (order by i) from e
create unique clustered index [CI_Tally] on tally (i)

create table ace (g geometry)
insert into ace (g)
values (geometry::STGeomFromText(<<your polygon string here>>, 0));

select i, g.STPointN(t.i), g.STPointN(t.i).STAsText()
from ace as [a]
cross join tally as [t]
where t.i <= g.STNumPoints()



  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 Server?

  2. Разлика в обработката на интервалите между Oracle и SQL Server

  3. SQL - Изваждане на изчерпваща стойност от редове

  4. Анатомията на задръстванията на SQL Server и най-добрите начини за избягването им

  5. Намерете невалидни дати в SQL Server 2008