Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menyimpan kolom 'Titik' dari ShapeFile

Saya sarankan menyimpan seluruh poligon sebagai tipe geometri. Jika/ketika Anda perlu "mengubahnya" menjadi geografi, gunakan metode geografi STNumPoints dan STPointN untuk mengekstrak masing-masing titik secara berurutan dan mengonversinya sebagaimana mestinya.

Berbicara tentang konversi, dalam format apa data Anda sekarang? Saya tidak melihat info lintang/bujur di sana, tapi mungkin ada sesuatu yang saya lewatkan.

Sunting:Inilah solusi yang baru saja saya kodekan.

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. Pivot dan koma nilai yang dipisahkan

  2. Bagaimana cara memasukkan variabel tabel dengan kueri dinamis?

  3. Log Transaksi SQL Server, Bagian 3:Dasar-dasar Pencatatan

  4. Bagaimana Anda menyalin catatan dalam tabel SQL tetapi menukar id unik dari baris baru?

  5. Mengakses parameter output prosedur tersimpan SQL Server di C#