当前位置: 代码迷 >> SQL >> SQL Server数据转换【包含Geometry部类】的技巧总结
  详细解决方案

SQL Server数据转换【包含Geometry部类】的技巧总结

热度:40   发布时间:2016-05-05 11:22:47.0
SQL Server数据转换【包含Geometry类型】的技巧总结

1. 字段的组合:

update new_master_location
set tmp_street_unique=street+'_'+city+'_'+state+'_'+zip+'_'+convert(varchar(20),municipality)
这里如果碰到整形的字段需要转化为字符型【int --> String】。

2. 去掉前后的空格:

update mapping_parcels
set city=ltrim(rtrim(city))

SQL没有Trim的方法,只能通过这样的方式

3. 字符的替换【Replace方法】:

update mapping_parcels
set sale_date=replace(sale_date,'0000-00-00','')

4. 按照字符分割字段:

创建一个function:Mapping_Get_StrArrayStrOfIndex

update mapping_parcels
set state_zip=dbo.Mapping_Get_StrArrayStrOfIndex(city_state,' ',0)

去city_state字段按照空格分割后的第一部分的值

5. 查看某个字段的值是否正确,查看字符串的长度:

select zip from new_master_location where len(zip)>5

6. 某个字段的值唯一,去除重复:

在该表上创建一个索引(index)[表设计器打开的状况无法新建索引的],名字随便起,Add添加索引时,选中不想重复的那一列tmp_unique

重要的是在Options中选择忽略重复的值,这样导入数据的时候会自动忽略掉重复的值。

7. 更新Geometry字段无效的状况:

update new_master_location_geometry
set boundary=boundary.MakeValid ()
where boundary.STIsValid()=0

8. 取面图形的中心点:

update new_master_location_geometry
set center_lat=boundary.STCentroid().STY,
center_lon=boundary.STCentroid().STX

9. 更新中心点的位置:

update block
set center=geometry::STPointFromText('POINT (-73.91301 40.96522)', 0),
editon=GetUTCDate()
where blockid=1125

  相关解决方案