SQL查询每个村是否包含个人,集体,null,如果没有,再按照县,乡,村添加补充缺少的字段!!

县 镇 村 林地所有权 林木所有权 小班面积
赫章县 古基乡 古基村 集体 个人 0.8375
赫章县 古基乡 古基村 集体 集体 0.2496
赫章县 古基乡 夸基村 集体 个人 0.3799
赫章县 古基乡 夸基村 集体 集体 0
赫章县 古基乡 夸基村 集体 集体 0
赫章县 古基乡 青龙村 集体 个人 0
赫章县 古基乡 桃园村 集体 个人 0.2493
赫章县 古基乡 团山村 集体 NULL 0
赫章县 古基乡 团山村 集体 集体 0

你要说明补充缺少字段的规则是什么,是有默认值吗?比如你的表定义如下:

 create table Assets (
 country varchar(255), 
 town varchar(255),
 village varchar(255),
 landowner varchar(255),
 plantowner varchar(255),
 area numeric(18, 4)
 );

 // 各个村林木所有权的统计信息
 select country, town, village plantowner, count(*) as num 
 from Assets 
 group by country, town, village, plantowner; 

 // 添加默认值
 select 
 country, 
 town, 
 village, 
 COALESCE(landowner, '集体'),
 COALESCE(plantowner, '集体'),
 COALESCE(area, 0)
 from Assets; 

update table 村 set 小班面积=“?” where 村 = select 村 where 小班面积=null;
update table 村 set 个人=“?” where 村 = select 村 where 个人=null;
update table 村 set 集体=“?” where 村 = select 村 where 集体=null;

你应该是为了查询是否存在
select * from table where isnull(林木所有权,'')=''
通过这个来获取所有权里面是空的或者没填的。

先对村查询select * from 村 where 条件(传参根据条件查询,不传查所有) 返回集合,判断集合是否为空,为空就到上一级查询 再判断是否为空,循环,一直到查询到数据,查询到数据后,再把数据往下级单位添加