sql获取倒数第几条以下的记录

姓名 年龄 信息创建者
张三 12 1
李四 12 1
王麻子 12 1
牛人 12 1
结构如上,我现在想获取最后2条记录该如何获取?
不要用姓名和年龄去做条件,我还要以'信息创建者'字段排序,上面只是一个例子表,我要通用的,我看过很多方法说通过排序然后再倒排取前几条就OK了,但是现在由于'信息创建者'字段的值全是相等的,不知又如何取得最后两条记录,不要问我有没有递增字段,我的要求是不要根据递增字段来实现.主要是要对所有表都通用。在此请教各位大侠,高手们!先说声谢谢!
最新回答
许仙没带伞

2024-11-04 05:22:20

在查询分析器里面用T-SQL语言
通过定义一个游标,打开,并使用之进行数据的读取就OK了
fetch first/next/prior/last/relative n from cursorname
其中cursorname就是你定义的时候那个游标
那个n就是一个整数,可正可负
你要看倒数的就先选择
fetch last from cursorname

fetch relative -1 from cursorname
这样就可以读取出最后两条咯
有什么不懂的再问我吧
我不会写诗

2024-11-04 06:58:12

declare
cursor cc is select *
from table order by 信息创建者;
type table_type is table of table%rowtype ;
v_depart table_type ;
begin
open cc;
fetch cc bulk collect into v_depart ;
for i in v_depart.count-1..v_depart.count loop
dbms_output.put_line(v_depart(i).姓名||'-'||v_depart(i).年龄||'-'||v_depart(i).信息创建者);
end loop;
close cc;
end;

oracle 下测试通过
貌似oracle 没有relative。。。
枕花眠

2024-11-04 19:09:42

没那么复杂,你先统计满足条件的记录数,然后显示最后两条不就行了.不要告诉你不懂怎么显示最后两条记录啊
对天空说爱你

2024-11-04 02:19:29

用游标呀 不懂就来问我