2 b j l h b_j_l_h 于 2015.06.01 13:48 提问

关于orale数据库的sql查询
要查询以两个字段为查询条件的语句,设为a字段和b字段,条件值为c,d,结果想
    查出a>=c 和<=c 并且b>=d 和b<=d 分别的第一条数据。
    如 a    b    
         3   6        
             5   8
             9   14
             2    3
            10   5
            11  4
c,d值为6,7查询结果为
10,5       5,8



确实说的不是很明白,这样吧,数据路有两个字段分别为经纬度,给出已知的经纬度查询数据库的最相近经纬度的数据,这样能明白吗,加在一起去比较肯定

是不行的

7个回答

SYK2WWJ
SYK2WWJ   2015.06.01 14:33
已采纳

select * from (
select M.*,rownum rn from tablename M order by sqrt((power((a-c),2)+power((b-d),2))) asc
) where rn = 1;
求两点间最短,不知道是不是这个意思。
sqrt去掉要好点

b_j_l_h
b_j_l_h 十分感谢
2 年多之前 回复
SYK2WWJ
SYK2WWJ 回复SYK2WWJ: select * from ( select a.* from aaa a order by sqrt((power((a-c),2)+power((b-d),2))) asc ) where rownum = 1; 哎
2 年多之前 回复
SYK2WWJ
SYK2WWJ select * from ( select a.* from aaa a group by nu1,nu2 order by sqrt((power((a-c),2)+power((b-d),2))) asc ) where rownum = 1;~~~好吧 前面的有问题~~
2 年多之前 回复
wgw335363240
wgw335363240   2015.06.01 13:57

完全没看懂楼主想问什么?没明白楼主的意思

danielinbiti
danielinbiti   Ds   Rxr 2015.06.01 13:59
 看不懂你的条件,不过基本思路可以按下面写
 select * from 表 where a>=c的值 and a<=c的值 and rownum=1
rickqin
rickqin   2015.06.01 14:05

呵呵,两个条件的结果分别是全集,然后将两个结果为全集的条件进行and计算,结果肯定还是全集,你直查全集的第一条记录不就行了,用得着这么绕么?

b_j_l_h
b_j_l_h   2015.06.01 14:09

确实说的不是很明白,这样吧,数据路有两个字段分别为经纬度,给出已知的经纬度查询数据库的最相近经纬度的数据,这样能明白吗,加在一起去比较肯定
是不行的

Paris_0008
Paris_0008   2015.06.01 14:23

感觉题目都不清晰............

wsh1992o
wsh1992o   Rxr 2015.06.01 14:28

select a,b from table where a>=c&&a<=c&&b>=d&b<=d orderby a,b

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!