日期:2014-05-17  浏览次数:20663 次

一个简单的T-SQL程序,新手自学,求高手赐教,帮我修改一下,最好是按照我的那种算法,让我明白我是错在哪,有什么想法改进的都可以教教我,谢谢了!
create table test(a int,b float)--创建表
insert into test values(1,10.0)--插入表
insert into test values(2,11.2)--插入表
insert into test values(3,18.4)--插入表
insert into test values(4,47.4)--插入表
insert into test values(5,50.9)--插入表
insert into test values(6,85.7)--插入表
go--结束第一个批处理
declare @n int--控制循环
set @n=1--初始条件
while(@n in(select a from test))--控制循环、循环条件
begin--循环体开始
select
begin--select
while(b<100)
begin--begin while
if(b<60)set b=b+4
else if(b<70)set b=b+3
else if(b<80)set b=b+2
else if(b<90)set b=b+1
else break
select b
from test
where a=@n
Quote:

--这个从表里输出某一项有没有别的语句
--能不能短一点啊,总是好几行
    end--end while
select b
    from test
where a=@n
    end--end select
from test
where a=@n
set @n=@n+1--控制条件
end--循环体结束
go

------解决方案--------------------
create table test(a int,b float)--创建表
insert into test values(1,10.0)--插入表
insert into test values(2,11.2)--插入表
insert into test values(3,18.4)--插入表
insert into test values(4,47.4)--插入表
insert into test values(5,50.9)--插入表
insert into test values(6,85.7)--插入表
go--结束第一个批处理
declare @n int--控制循环
set @n=1--初始条件
while(@n in(select a from test))--控制循环、循环条件
begin--循环体开始
--SELECT 
--begin--select
--while(b<100)
--begin--begin while
-- if(b<60)set b=b+4
-- else if(b<70)set b=b+3
-- else if(b<80)set b=b+2
-- else if(b<90)set b=b+1
-- else break
-- select b
-- from test
-- where a=@n
----这个从表里输出某一项有没有别的语句
----能不能短一点啊,总是好几行
--     end--end while