我碰到了如下的问题,处理不了,望高手帮忙,先谢谢了
ID      村名              BBB         CCC
1      关山村              1          竹林
2       NULL               5          纯林
3      欧家村              2          竹林
4       NULL               2          竹林
5       NULL               3          非林地  
6       NULL               1          非林地  
7       NULL               9          经灌林  
8      塘口畈              7          坡耕地  
……现在要转换成如下:(即:将每个村后面的记录中村名为空的都补上)ID      村名              BBB         CCC
1      关山村              1          竹林
2      关山村              5          纯林
3      欧家村              2          竹林
4      欧家村              2          竹林
5      欧家村              3          非林地  
6      欧家村              1          非林地  
7      欧家村              9          经灌林  
8      塘口畈              7          坡耕地 
……

解决方案 »

  1.   

    --> 测试数据:[tb]
    if object_id('[tb]') is not null drop table [tb]
    create table [tb]([ID] int,[村名] varchar(6),[BBB] int,[CCC] varchar(6))
    go
    insert [tb]
    select 1,'关山村',1,'竹林' union all
    select 2,null,5,'纯林' union all
    select 3,'欧家村',2,'竹林' union all
    select 4,null,2,'竹林' union all
    select 5,null,3,'非林地' union all
    select 6,null,1,'非林地' union all
    select 7,null,9,'经灌林' union all
    select 8,'塘口畈',7,'坡耕地'update t
    set 村名 = (select top 1 村名 from [tb] where id < t.id  and isnull(村名,'') <> '' order by id desc)
    from [tb] t
    where 村名 is nullselect * from [tb]--------------------------------
    ID          村名     BBB         CCC
    ----------- ------ ----------- ------
    1           关山村    1           竹林
    2           关山村    5           纯林
    3           欧家村    2           竹林
    4           欧家村    2           竹林
    5           欧家村    3           非林地
    6           欧家村    1           非林地
    7           欧家村    9           经灌林
    8           塘口畈    7           坡耕地(8 行受影响)
      

  2.   

    实在太感谢 nianran520 了,分全部给你吧