首页 新闻 会员 周边

sqlserver 问题

0
悬赏园豆:40 [已解决问题] 解决于 2013-05-25 11:27

要把DeptName为Null的字段值填充为上一条记录的DeptName的字段值

如将23的园林管理处填充到24的Null中

红尘中行的主页 红尘中行 | 初学一级 | 园豆:130
提问于:2013-05-24 22:35
< >
分享
最佳答案
0
declare mycursor cursor
 for select id,DeptName from tabtest 
open mycursor     
 
    declare @id int,@deptname varchar(20)    
    declare @id_Old int,@deptname_Old varchar(20)
    declare @sql varchar(100)
    
    fetch next from mycursor into @id,@deptname   
    while @@fetch_status=0   
    begin 
        if(@deptname is null)
            begin
                set @sql=' update tabTest set deptname='''+@deptname_Old+''' where ID = '+cast(@id as nvarchar);
                print @sql;        
                exec(@sql)        
            end
        set @id_Old=@id 
        set @deptname_Old=@deptname
        fetch next from mycursor into @id,@deptname    
    end  
close mycursor  
deallocate mycursor
收获园豆:20
yyutudou | 小虾三级 |园豆:997 | 2013-05-25 00:11

谢谢!回去研究一下游标。。

红尘中行 | 园豆:130 (初学一级) | 2013-05-25 11:29
其他回答(1)
0

可以考虑使用游标。就是一行一行循环,每次记录到上一条记录的DeptName,判断下一条为null的时候就更新一下。

游标:http://www.chinaz.com/program/2009/0702/81538.shtml

收获园豆:20
滴答的雨 | 园豆:3660 (老鸟四级) | 2013-05-24 23:51

非常感谢!

支持(0) 反对(0) 红尘中行 | 园豆:130 (初学一级) | 2013-05-25 11:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册