标题:写了一个笨语句
取消只看楼主
风流上进
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2007-7-20
 问题点数:0 回复次数:0 
写了一个笨语句

update test1 set je = jj * 人口数
人口数 根据 left(bh,4) 获得

create table test1 (bh nvarchar(20),jj int,je int)

insert test1 ('1101001',10,0)
insert test1 ('1101001',10,0)
insert test1 ('1101001',10,0)
insert test1 ('1102001',10,0)
insert test1 ('1102001',10,0)
insert test1 ('1102001',10,0)
insert test1 ('1102001',10,0)
insert test1 ('1102001',10,0)
insert test1 ('1103001',10,0)
insert test1 ('1103001',10,0)

我的做法



declare @min int,@max int,@num int
select @min=min(left(bh,4)),@max=max(left(bh,4)) from test1

while @min<=@max
begin
select @num=count(*) from test1 where left(bh,4) = @min
print @num
update test1
set je = jj * @num where left(bh,4) = @min

set @min=@min + 1
end

由于编号可能不连续,我写的这个执行速度特别慢,谁有更好的?



搜索更多相关主题的帖子: 语句 
2007-09-18 10:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-170829-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.948107 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved