select case when (--当前记录 select p.colname from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 ) > (--前一条记录 select p.colname from yourtablename p where id=(select p.id --注意这里是id from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 )-1 ) then '当前记录某字段>前一条记录某字段' when (--当前记录 select p.colname from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 ) = (--前一条记录 select p.colname from yourtablename p where id=(select p.id from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 )-1 ) then '当前记录某字段=前一条记录某字段' when (--当前记录 select p.colname from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 ) < (--前一条记录 select p.colname from yourtablename p where id=(select p.id from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 )-1 ) then '当前记录某字段<前一条记录某字段' else '前一条某字段为空' end 和前一条比较, case when (--当前记录 select p.colname from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 ) > (--后一条记录 select p.colname from yourtablename p where id=(select p.id from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 )+1 ) then '当前记录某字段>前一条记录某字段' when (--当前记录 select p.colname from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 ) = (--后一条记录 select p.colname from yourtablename p where id=(select p.id from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 )+1 ) then '当前记录某字段=前一条记录某字段' when (--当前记录 select p.colname from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 ) < (--后一条记录 select p.colname from yourtablename p where id=(select p.id from yourtablename p where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录 )+1 ) then '当前记录某字段<前一条记录某字段' else '后一条某字段为空' end 和后一条比较 from dual; 这个应该可以用了,测试过的,改一下表明和字段名还有条件就可以了。
Lead函数是不是可以帮到你呢?
select * from table t where t.rowid=(select rowid-1 rowid from table where ...); 这样行不行?
case when (--当前记录
select p.colname
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)
>
(--前一条记录
select p.colname
from yourtablename p
where id=(select p.id --注意这里是id
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)-1
)
then '当前记录某字段>前一条记录某字段'
when (--当前记录
select p.colname
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)
=
(--前一条记录
select p.colname
from yourtablename p
where id=(select p.id
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)-1
)
then '当前记录某字段=前一条记录某字段'
when (--当前记录
select p.colname
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)
<
(--前一条记录
select p.colname
from yourtablename p
where id=(select p.id
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)-1
)
then '当前记录某字段<前一条记录某字段'
else '前一条某字段为空'
end 和前一条比较,
case when (--当前记录
select p.colname
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)
>
(--后一条记录
select p.colname
from yourtablename p
where id=(select p.id
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)+1
)
then '当前记录某字段>前一条记录某字段'
when (--当前记录
select p.colname
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)
=
(--后一条记录
select p.colname
from yourtablename p
where id=(select p.id
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)+1
)
then '当前记录某字段=前一条记录某字段'
when (--当前记录
select p.colname
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)
<
(--后一条记录
select p.colname
from yourtablename p
where id=(select p.id
from yourtablename p
where id=1 --能确定查询到一条记录的条件,而这条记录要是你所谓的当前记录
)+1
)
then '当前记录某字段<前一条记录某字段'
else '后一条某字段为空'
end 和后一条比较
from dual; 这个应该可以用了,测试过的,改一下表明和字段名还有条件就可以了。
这样行不行?
是不是错的离谱了点?