按时间排序,然后top 3吧,呵呵。

解决方案 »

  1.   

    没有排序字段?
    select * from a where id in(ID-1,ID,ID+1)
    呵呵 ~
      

  2.   

    如果是字符,分两次吧
    ro=====select ro from (select rownum ro,ID from A) t where ID='****';
    select * from (select rownum ro,ID from A) t where ro in(ro-1,ro,ro+1)
      

  3.   

    SELECT * from (
    select top 1 * 
    FROM dbo.TRN_SaleLangAnswer
    WHERE (Updatedate < (SELECT Updatedate
              FROM dbo.TRN_SaleLangAnswer
              WHERE (ID = '3') ) ) 
    order by Updatedate desc ) as t1UNION ALLSELECT *
    FROM dbo.TRN_SaleLangAnswer
    WHERE (ID = '3')UNION ALLSELECT * from (
    select top 1 * 
    FROM dbo.TRN_SaleLangAnswer
    WHERE (Updatedate > (SELECT Updatedate
              FROM dbo.TRN_SaleLangAnswer
              WHERE (ID = '3') ) )  ) as t2另一种方法就是分成三个SQL语句最后还有一个方法就是用游标。。
      

  4.   

    select * from 表
    where id=8 or id=(select min(id) from 表 where id>8)
    or id=(select max(id) from 表 where id<8)