我有一张表Test 有字段:ColA,ColB,ColC,ColD我怎么每次取数据都能把这表中数据最中间的一条数据取出来:如果是2:条记录,那就取第2条
colA colB colC ColD
351 暂无效果 5 0
85 耳目 3 0取出来的是:85 耳目 3 0
如果是3:条记录,那就取第2条
colA colB colC ColD
351 暂无效果 5 0
85 耳目 3 0
89 群众反映 3 0取出来的是:85 耳目 3 0如果是4:条记录,那就取第3条
colA colB colC ColD
351 暂无效果 5 0
85 耳目 3 0
89 群众反映 3 0
86 特情 3 0取出来的是:86 特情 3 0如果是5:条记录,那就取第3条
colA colB colC ColD
351 暂无效果 5 0
85 耳目 3 0
89 群众反映 3 0
86 特情 3 0
87 信息员 3 0取出来的是:86 特情 3 0
这条SQL怎么写啊,如果真的不好设现,大家给我写一个,都取第二条的SQL
colA colB colC ColD
351 暂无效果 5 0
85 耳目 3 0取出来的是:85 耳目 3 0
如果是3:条记录,那就取第2条
colA colB colC ColD
351 暂无效果 5 0
85 耳目 3 0
89 群众反映 3 0取出来的是:85 耳目 3 0如果是4:条记录,那就取第3条
colA colB colC ColD
351 暂无效果 5 0
85 耳目 3 0
89 群众反映 3 0
86 特情 3 0取出来的是:86 特情 3 0如果是5:条记录,那就取第3条
colA colB colC ColD
351 暂无效果 5 0
85 耳目 3 0
89 群众反映 3 0
86 特情 3 0
87 信息员 3 0取出来的是:86 特情 3 0
这条SQL怎么写啊,如果真的不好设现,大家给我写一个,都取第二条的SQL
但是不明白lz的意思
为何是中间的那条,不能先排序吗
select * from
(select t.*, rownum as num from Test t)
where num=ceil((select count(*) from Test)/2)
colA colB colC ColD
351 暂无效果 5 0
85 耳目 3 0
89 群众反映 3 0
86 特情 3 0 取出来的是:86 特情 3 0 =================
第三条不是 89 群众反映 3 0 吗?
from (
select rounum num, t.*
from Test t
)
where num = (num/2+1)