+ -
当前位置:首页 → 问答吧 → 求高手写个sql啊,最小值最大值问题

求高手写个sql啊,最小值最大值问题

时间:2011-09-05

来源:互联网

求高手写个sql啊,有一个表:
t(id number, score1 number, score2 number);
试写一个sql语句:查找一个id(如有多个id取最小id值),使得给定的数值80距离score1或score2列最近。如
1 70 90
2 60 85
则85最近,id=2

再如
1 50 60
2 90 95
则90最近,id为2;

再如
1 60 70
2 90 96
则id 1最小,id为1;

分不多了,求助了!

作者: lzx_bupt   发布时间: 2011-09-05

select id ,temp "差值" from (select T.ID, case when abs(t.score1-80)>abs(t.score2-80) then abs(t.score2-80) else abs(t.score1-80) end temp from t)
where temp =(select min(case when abs(t.score1-80)>abs(t.score2-80) then abs(t.score2-80) else abs(t.score1-80) end) from t)

作者: lnuwhy   发布时间: 2011-09-05

select min(id) from (select T.ID, case when abs(t.score1-80)>abs(t.score2-80) then abs(t.score2-80) else abs(t.score1-80) end temp from t)
where temp =(select min(case when abs(t.score1-80)>abs(t.score2-80) then abs(t.score2-80) else abs(t.score1-80) end) from t)
修改后的,取最小ID

作者: lnuwhy   发布时间: 2011-09-05