select name from A where (Length2-Length1) in (select min(Length2-Length1) from A);
select * from (select row_number() over(order by abs(Length2-Length1)) rm,name from a) where rm=1;
NO1,说错误位于第二行,表或视图不存在; NO2,OK,能查处B-A的距离最小值的行的NAME。但距离最小却应该是绝对值最小。 NO3,THE BEST ONE!!!但是请问楼主这种语法在哪里可以查到,有没有什么资料可以学习,谢谢,真的很管用也!!!
nicholaz(九思·逢尤) 同志的只需加一个函数就OK, select name from A where (Length2-Length1) in (select min(abs(Length2-Length1))from A);
楼主写错了吧? 是不是这样: select name from A where abs(Length2-Length1) in (select min(abs(Length2-Length1))from A); 我还有一种写法 select name from (select name,min(abs(Length2-Length1))from A) where rownum = 1;
NO,没错的,你的出现错误出在第一行,非单组分组函数。呵呵,在SQL*PLUS里试试旧知道了。
select name from table_a where (len1-len2)=(select min(len1-len2) from table_a)
select name from table_name where abs(length1-length2)=(select min(abs(length1-length2)) from table_name);
select name from (select (length1-length2) dis,name from table_name group by (length1-length2),name) where rownum<2; order by 在低版本的oracle可能不支持
NO2,OK,能查处B-A的距离最小值的行的NAME。但距离最小却应该是绝对值最小。
NO3,THE BEST ONE!!!但是请问楼主这种语法在哪里可以查到,有没有什么资料可以学习,谢谢,真的很管用也!!!
select name from A where (Length2-Length1) in (select min(abs(Length2-Length1))from A);
是不是这样:
select name from A where abs(Length2-Length1) in (select min(abs(Length2-Length1))from A);
我还有一种写法
select name from (select name,min(abs(Length2-Length1))from A) where rownum = 1;
(select (length1-length2) dis,name from table_name
group by (length1-length2),name)
where rownum<2;
order by 在低版本的oracle可能不支持