首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

选择矩形范围内的坐标值,这样的sql如何写

2013-02-02 
选择矩形范围内的坐标值,这样的sql怎么写表里面有minX,minY,maxX,maxY字段,记录一个矩形范围。给定2组坐标,

选择矩形范围内的坐标值,这样的sql怎么写
表里面有minX,minY,maxX,maxY字段,记录一个矩形范围。
给定2组坐标,形成一个矩形。选择所有在这个矩形范围内的记录。
不是完全包括,只要有一部分在就行。

[解决办法]
这个有点数学性质的问题了。
假定坐标(x1,y1), (x2,y2)
a = min(x1,x2)
b= min(y1,y2)
c = max(x1,x2)
d= max(y1,y2)

select * from tb
where (not ((minX > c) or (maxX < a)))
and (not ((minY > d) or (maxY < b)))
[解决办法]

...where x1 between minX and maxX and x2 between minX and maxX 
and y1 between minY and maxY and y2 between minY and maxY

[解决办法]
引用:
表里面有minX,minY,maxX,maxY字段,记录一个矩形范围。
给定2组坐标,形成一个矩形。选择所有在这个矩形范围内的记录。
不是完全包括,只要有一部分在就行。


这个有点像数学里的求范围值了,你画个坐标轴苗一苗就明白了!
有两种情况:1、X 比最小的 无限大,Y 在范围内。
            2、Y 比最小的 无限大,X 在范围内。

...where  (minX < X and Y between  minY and maxY)
       or (minY < Y and X between  minX and maxX)

[解决办法]
连个坐标构不成矩形,你给定的肯定也只是四个数据@minX,@minY,@maxX,@maxY
所以你知道考虑 
minX,maxX和@minX,@maxX有交集,并且minY,maxY和@minY,@maxY有交集,就可以了。
这样问题就变的简单了。

热点排行