数据库的表table1如下:
id(varchar2) value(varchar2)
1 5
1 6
1 7
2 3
2 4
现在想查第二条记录,小弟的sql语句是这样的。select min(value) from table1 where id='1' and value>'5';但是这样查不到任何数据,求大神指导,谢谢~!数据库sql
id(varchar2) value(varchar2)
1 5
1 6
1 7
2 3
2 4
现在想查第二条记录,小弟的sql语句是这样的。select min(value) from table1 where id='1' and value>'5';但是这样查不到任何数据,求大神指导,谢谢~!数据库sql
要不改成这样试试:
select min(TO_NUMBER(value)) from table1 where TO_NUMBER(id)=1 and TO_NUMBER(value)>5;
1楼的大神能解释下括号里面是什么意思么?小弟初学,看不太懂。还有就是可能我没说清楚,其实最终目的是为了查找比给定value值大的值中的最小值。比如说,
id(varchar2) value(varchar2)
1 5
1 7
1 9
2 3
2 4
在id=1的情况下,如果我给定value值是5,比5大的value值有7和9,那么我想查的是value为7的这条记录,而不是9这条记录。不知道说明白没?求赐教,谢谢
谢谢,刚才试了下,改成to_number(value)>'5'就可以了,前面的字段没用to_number转化。刚才我也想过转成数字,但是又觉得没必要,所以就没试。多谢这位兄弟。估计是字段类型为varchar2的原因吧。还有个有趣的事,刚才自己在那试验,用max()和min()返回value的最大和最小值。结果大跌眼镜,返回的最大值是5,最小值是10.我都傻了,不晓得怎么回事
注意一下你的nls_sort和nls_territory、nls_language等的设置
select t1.* from (select t.*,t.rownum tr from table1)t1 where tr=2;
1楼的大神能解释下括号里面是什么意思么?小弟初学,看不太懂。还有就是可能我没说清楚,其实最终目的是为了查找比给定value值大的值中的最小值。比如说,
id(varchar2) value(varchar2)
1 5
1 7
1 9
2 3
2 4
在id=1的情况下,如果我给定value值是5,比5大的value值有7和9,那么我想查的是value为7的这条记录,而不是9这条记录。不知道说明白没?求赐教,谢谢
按顺序取出表中的数据并编号!