比如表:
aa bb cc
0 400 d
0 500 e
1 300 c
1 700 b
2 600 a
排序方式为aa asc,bb asc.其中aa不唯一,bb唯一.
我现在知道cc=c的这条数据.想找出它的前一条数据(即cc=e的那条数据)
怎么写??
------解决方案--------------------
select
top 1 b.*
from
表 a,表 b
where
a.cc= 'c ' and (a.aa> b.aa or (a.aa=b.aa and a.cc> b.cc))
order by
b.aa,b.bb
------解决方案--------------------
--找前一条数据(排序方式为aa asc,bb asc.其中aa不唯一,bb唯一)
select
top 1 b.*
from
表 a,表 b
where
a.cc= 'c ' and (a.aa> b.aa or (a.aa=b.aa and a.bb> b.bb))
order by
b.aa,b.bb
--找后一条数据(排序方式为aa asc,bb asc.其中aa不唯一,bb唯一)
select
top 1 b.*
from
表 a,表 b
where
a.cc= 'c ' and (a.aa <b.aa or (a.aa=b.aa and a.bb <b.bb))
order by
b.aa,b.bb
------解决方案--------------------
select top 1 b.* from 表 a,表 b
where a.cc= 'c ' and (a.aa*100000+a.bb> b.aa*100000+b.cc)
order by b.aa,b.bb
select top 1 b.* from 表 a,表 b
where a.cc= 'c ' and (a.aa*100000+a.bb <b.aa*100000+b.cc)
order by b.aa,b.bb