sql:select * from(select top 1 * from tblname order by id desc)
union (select top 1 * from tblname order by id asc)
解释:先降序查询出第一条记录,然后在升序查询出第一条记录,之后将结果作为两条数据输出。
给你一个Oracle的示例,请根据自己的应用场景,参考调测自己mysql的代码在Oracle数据库中:
declare
sname varchar2( 20)--声明变量
cursor student_cursor is select sname from student --声明指向表student的【游标】
begin
open student_cursor--打开游标
fetch student_cursor into sname --获取游标的当前指向值,使游标指针往下移动
while student_cursor%found --【你提问的应该是这个条件】判断游标指针是否指向某行记录,即是否已遍历完全表
loop--循环遍历
dbms_output.put_line ('学生姓名' ||sname )--输出当前遍历访问的行记录信息
fetch student_cursor into sname--获取游标的当前指向值,使游标指针往下移动
end loop--循环体结束
close student_cursor--关闭游标,对应前面open *** 作
end
另一个在任何数据库都通用的办法是:
首先统计表的行数并记录下来,假定是变量cnt_stu,再定义一个计数变量i=1
在循环体中,当i<=cnt_stu,就执行遍历,并且i=i+1,这样当遍历完了也会跳出循环体。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)