加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

CASS下悬挂自动处理思路

(2010-10-11 12:54:48)
标签:

it

分类: 工作/开发方面

背景:在处理悬挂的时候,正常思维编写的代码执行速度很慢,所以想借用数据库来实现。

表结构:

Handle,Type(圆、块、多段线等),Level(优先级),DingDianHao(当为多段线或二维多段线时记录顶点号),X1,Y1,X2,Y2

流程:

1、先将所有点坐标读入表中

2、查找X2,Y2重复的记录R1(X2,Y2:X1和Y1保留位数比容差少一位)

3、循环R1

   3.1 查找是否存在需要处理的记录R3(即两点距离在容差范围内,SQL语句见后)

   3.2 若存在,则找出R1中等级最高的记录R2

   3.3 判断R2记录个数:

       1个——顶点;2个——中点;3个及以上——内点

   3.4 可记录下修改记录

 

示例如下:
────────────
| J6 | 62.396 | 43.509 |
| J7 | 64.277 | 44.190 |
| J8 | 67.240 | 43.722 |
| J9 | 68.719 | 42.376 |
| J10 | 68.608 | 42.097 |
| J11 | 68.353 | 41.939 |
| J12 | 68.098 | 41.780 |
| J13 | 67.804 | 41.724 |
| J14 | 67.276 | 40.875 |
| J15 | 65.748 | 39.584 |
| J16 | 64.749 | 39.627 |
| J17 | 64.453 | 40.582 |
| J18 | 62.665 | 41.478 |
| J19 | 61.438 | 42.093 |
| J20 | 61.637 | 42.318 |
| J21 | 61.508 | 42.588 |
| J22 | 61.636 | 42.860 |
────────────
假设用户设定范围为:0.3,查询出来的结果应该是J9-J13和J19-J22
请问这样的SQL语句如何写?

SQL语句如下:

select a.id,a.x,a.y
       b.id,b.x,b.y
from my_table as a
    ,my_table
as b
where a.id <> b.id
 
and sqr(((a.x-b.x)^2)+((a.y-b.y)^2)) < 0.3

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有