首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个简单的T-SQL程序,新手自学,求高手赐教,帮小弟我修改一下,最好是按照小弟我的那种算法,让小弟我明白小弟我是错在哪,有什么想法改进的都可以教教小弟我,多谢

2013-08-11 
一个简单的T-SQL程序,新手自学,求高手赐教,帮我修改一下,最好是按照我的那种算法,让我明白我是错在哪,有什

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

热点排行