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
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
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
select CASE
WHEN b<60 THEN b+4
WHEN (b<70 AND b>=60) THEN b+3
WHEN b<80 AND b>=70 THEN b+2
WHEN b<90 AND b>=80 THEN b+1
ELSE b
END
from test
where a=@n AND b<100
--end--end select
--from test
--where a=@n
set @n=@n+1--控制条件
end--循环体结束
GO
在set @n=@n+1前加一个
if((select b from test where a=@n)>=100)
怎么他就无限输出14,而不是累加呢,
select b=case不是可以赋值的吗?