数据库 没有行这一概念的
SQL 也只能找出符合条件的结果集
要找附近的几条语句
那把条件也给出来

解决方案 »

  1.   

    就是 SELECT 出符合条件的记录附近的前后包括本条记录?--你的附近的前后?,那具体要几笔!?
      整个表格查询出来,也是符合条件的记录附近的前后包括本条记录?!
      

  2.   

    一种基于记录集查找特定行的方法
    http://www.microsoft.com/china/sql/using/tips/development/setbasedrows.asp
      

  3.   

    比如:
    SELECT TOP 1 *
    FROM GuestBook
    WHERE (Ip = N'192.168.0.1')
    UNION ALL
    SELECT TOP 1 *
    FROM GuestBook
    WHERE (Ip = N'192.168.0.1') AND id >
              (SELECT TOP 1 id
             FROM GuestBook
             WHERE (Ip = N'192.168.0.1'))
    UNION ALL
    SELECT TOP 1 *
    FROM GuestBook
    WHERE (Ip = N'192.168.0.1') AND id <
              (SELECT TOP 1 id
             FROM GuestBook
             WHERE (Ip = N'192.168.0.1'))
      

  4.   

    楼上的
    应该是这样子吧?SELECT TOP 1 *
    FROM GuestBook
    WHERE (Ip = N'192.168.0.1')
    UNION ALL
    SELECT TOP 1 *
    FROM GuestBook
    WHERE id >
              (SELECT TOP 1 id
             FROM GuestBook
             WHERE (Ip = N'192.168.0.1'))
    UNION ALL
    SELECT TOP 1 *
    FROM GuestBook
    WHERE id <
              (SELECT TOP 1 id
             FROM GuestBook
             WHERE (Ip = N'192.168.0.1'))
      

  5.   

    就是 SELECT 出符合条件的记录附近的前后包括本条记录?
    比如有个表:spkfk 条件:spbh='aaa'select identity(int,1,1) as sn,spkfk.* into ##aa from spkfk 
    declare @a int
    select @a=sn from ##aa where spbh ='aaa'select * from ##aa where sn=@a
    union
    select * from ##aa where sn=@a-1
    union
    select * from ##aa where sn=@a+1
      

  6.   

    多谢楼上的几位了,不过有没有不借助于 Identity 的办法?
      

  7.   

    用我的试试:以Northwind数据库中的Orders表为例,获取以10330为中心的前后各10条数据。DECLARE @TargetOrder intSET @TargetOrder=10330 select *FROM orders WHERE OrderId=@TargetOrder OR OrderId in(SELECT top 10 OrderId FROM orders WHERE OrderId < @TargetOrder order by OrderId desc)OR OrderId in(SELECT top 10 OrderId FROM orders WHERE OrderId > @TargetOrder order by OrderId)
      

  8.   

    楼上的几位大虾给出的方法都需要使用 Indentity ,但是我却想找出一条记录旁的几条记录以确定该条记录的 Identity  大于前一条小于后一条的,所以不能用 Identity 去找,有没有什么语句能够找出物理存在于一条记录旁的记录?
      

  9.   

    首先楼主要明白,在库中的表里面存储的记录是无序的,并不是想像的那样最后一次存的一定在最后一条的位置上! 除非你用自增的ID,像上面说的 identity 。
    不然,你取的数据就像是随机取数据一样,何况,这样取好像没有什么实际意义! 因为你现在取的A记录前后的记录可能是B和C,但如果有数据插入,下次取A记录前后的可能是C和D记录!也就是说物理位置也在发生变化!
      

  10.   

    定位该条记录还是用 Identity 的,所以不会有重复记录;不过附近记录不能用 Identity ,是不是没有办法呢? 如果真的不行,就只能算法了,再想想别的办法。
    另外,楼上说的 邹捷 是谁呢?恕我孤陋寡闻了。:-)