alter table tablename id int identity(1,1)
go
select 姓名,操作,[上一步]=case when id=1 then '空' 
                               else (select 操作 from tablename where id=a.id-1)
                          end
from tablename a
go
alter table tablename drop column id

解决方案 »

  1.   

    --建立测试环境
    Create Table 表(姓名 varchar(10),操作 varchar(10),步骤 int)        
    --插入数据
    insert into 表
    select 'AAA','A',1 union
    select 'BBB','B',4 union
    select 'CCC','C',3 union
    select 'DDD','D',5 union
    select 'EEE','E',2
    select * from 表
    --测试语句
     select a.姓名, a.操作, 上一步 = IsNull(b.操作, '空')
       from 表 a left join 表 b
       on a.步骤 = b.步骤 + 1
     
    --删除测试环境
    Drop Table 表
      

  2.   

    select 姓名,操作,isnull((select 操作 from tablename where 步骤=a.步骤-1),'空') as [上一步]  from tablename a order by 步骤
      

  3.   

    --建立测试环境
    Create Table 表(姓名 varchar(10),操作 varchar(10),步骤 int)        
    --插入数据
    insert into 表
    select 'AAA','A',1 union
    select 'BBB','B',4 union
    select 'CCC','C',3 union
    select 'DDD','D',5 union
    select 'EEE','E',2
    --测试语句
    select 姓名,操作,[上一步]=case when 步骤=1 then '空' 
                                   else (select 操作 from 表 where 步骤=a.步骤-1)
                              end
    from 表 a
    order by 步骤 
     
    --删除测试环境
    Drop Table 表--结果
    /*
    姓名     操作      上一步
    AAA      A         空
    EEE      E         A
    CCC      C         E
    BBB      B         C
    DDD      D         B*/
      

  4.   

    我的有一点不行...SELECT x1.姓名,x1.操作,x2.操作 AS 上一步 FROM #temp x1,#temp x2 WHERE x1.步骤=x2.步骤+1
    --------
    结果:
    BBB B C
    CCC C E
    DDD D B
    EEE E A
      

  5.   


    Select 
    姓名,
    操作,
    IsNull((Select 操作 from 表 Where 步骤=A.步骤-1 ),N'空') As 上一步
    from 表 A