读书人

一个简单的T-SQL程序新手自学求高

发布时间: 2013-08-11 22:22:29 作者: rapoo

一个简单的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


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

读书人网 >SQL Server

热点推荐