--处理示例--测试数据 create table 表(coumn1 varchar(10),coumn2 varchar(10),coumn3 varchar(10),coumn4 varchar(10)) insert 表 select '藏','阿里地区','普兰县',50 union all select '藏','阿里地区','噶尔县',50 union all select '藏','阿里地区','改则县',50 union all select '藏','昌都地区','昌都县',50 union all select '藏','昌都地区','类乌齐县',50 union all select '藏','昌都地区','丁青县',50 union all select '藏','昌都地区','八宿县',50 union all select '藏','昌都地区','左贡县',50 union all select '藏','昌都地区','洛隆县',50 go--处理 select id=identity(int,1,1),* into #t from 表 update #t set coumn4='' from #t a left join( select coumn1,coumn2 ,id=min(id)+(max(id)-min(id)+1)/2 from #t group by coumn1,coumn2 )b on a.id=b.id where b.id is null--显示处理结果 select coumn1,coumn2,coumn3,coumn4 from #t go--删除测试 drop table 表,#t/*--测试结果 coumn1 coumn2 coumn3 coumn4 ---------- ---------- ---------- ---------- 藏 阿里地区 普兰县 藏 阿里地区 噶尔县 50 藏 阿里地区 改则县 藏 昌都地区 昌都县 藏 昌都地区 类乌齐县 藏 昌都地区 丁青县 藏 昌都地区 八宿县 50 藏 昌都地区 左贡县 藏 昌都地区 洛隆县 (所影响的行数为 9 行) --*/
条件是coumn1 coumn2 是唯一的索引
coumn1 coumn2 coumn3 coumn4
藏 阿里地区 普兰县 50
藏 阿里地区 噶尔县 50
藏 阿里地区 改则县 50
藏 昌都地区 昌都县 50
藏 昌都地区 类乌齐县 50
藏 昌都地区 丁青县 50
藏 昌都地区 八宿县 50
藏 昌都地区 左贡县 50
藏 昌都地区 洛隆县 50变成如下表: coumn1 coumn2 coumn3 coumn4
藏 阿里地区 普兰县
藏 阿里地区 噶尔县 50
藏 阿里地区 改则县
藏 昌都地区 昌都县
藏 昌都地区 类乌齐县
藏 昌都地区 丁青县
藏 昌都地区 八宿县 50
藏 昌都地区 左贡县
藏 昌都地区 洛隆县 50的值,最好能居中,我是要导到Excel的!!
明白??
谢谢!!
create table 表(coumn1 varchar(10),coumn2 varchar(10),coumn3 varchar(10),coumn4 varchar(10))
insert 表 select '藏','阿里地区','普兰县',50
union all select '藏','阿里地区','噶尔县',50
union all select '藏','阿里地区','改则县',50
union all select '藏','昌都地区','昌都县',50
union all select '藏','昌都地区','类乌齐县',50
union all select '藏','昌都地区','丁青县',50
union all select '藏','昌都地区','八宿县',50
union all select '藏','昌都地区','左贡县',50
union all select '藏','昌都地区','洛隆县',50
go--处理
select id=identity(int,1,1),* into #t from 表
update #t set coumn4=''
from #t a left join(
select coumn1,coumn2
,id=min(id)+(max(id)-min(id)+1)/2
from #t
group by coumn1,coumn2
)b on a.id=b.id
where b.id is null--显示处理结果
select coumn1,coumn2,coumn3,coumn4 from #t
go--删除测试
drop table 表,#t/*--测试结果
coumn1 coumn2 coumn3 coumn4
---------- ---------- ---------- ----------
藏 阿里地区 普兰县
藏 阿里地区 噶尔县 50
藏 阿里地区 改则县
藏 昌都地区 昌都县
藏 昌都地区 类乌齐县
藏 昌都地区 丁青县
藏 昌都地区 八宿县 50
藏 昌都地区 左贡县
藏 昌都地区 洛隆县 (所影响的行数为 9 行)
--*/
coulumn1 coulumn2 coulumn3 MaXValue MinValue
CODMN GB3838-2002 1 2 0
CODMN GB3838-2002 2 4 2
CODMN GB3838-2002 3 6 4
CODMN GB3838-2002 4 10 6
CODMN GB3838-2002 5 15 10
能否用一个SQL实现如下功能:给定任意一个值:如果该值在0-2 之间 : I类
2-4 之间 : II类
4-6之间 : III类
6-10之间 : IV类
10-15之间 : V 类
大余15 : 劣V 类