标题: 一个关于T-SQL的小问题·· [打印本页] 作者: wang_no1 时间: 2009-8-7 14:01 标题: 一个关于T-SQL的小问题·· --九九乘法口诀表
declare @i int,@j int,@k int,@tem varchar(400)
set @i=1
set @k=0
set @j=1
set @tem=''
while(@i<=9)
begin
set @j=1
while(@j<10 and @j<=@i)
begin
set @k=@i*@j
set @tem=@tem+' '+cast(@i as varchar(5))+'x'+cast(@j as varchar(5))+'='+cast(@k as varchar(5))
set @j=@j+1
end
set @i=@i+1
print @tem
end
不知道为什么老有重复的出现 很是郁闷。。。希望好心人帮帮我忙。 打印出三角形的99表
打印出来的结果是
[ 本帖最后由 wang_no1 于 2009-8-11 19:20 编辑 ]作者: visiter123 时间: 2009-8-7 15:51
把你得出的结果发上来看一下啊。作者: visiter123 时间: 2009-8-7 15:53
set @tem=@tem+' '+cast(@i as varchar(5))+'x'+cast(@j as varchar(5))+'='+cast(@k as varchar(5))
应该是你这句有问题。你的格式控制不是很正确哦。好像打不出来三角形的。作者: wang_no1 时间: 2009-8-11 19:20 标题: 回复 2# 的帖子 已经发上来了 谢谢作者: wang_no1 时间: 2009-8-11 19:21 标题: 回复 3# 的帖子 您有什么好的建议吗 谢谢作者: amita 时间: 2009-8-11 23:20
我觉得你的程序是按行输出的 可是J的值始终都是从1-i之间赋值 也就是说每个循环后J没有自加1 第二行J=2开始
当然我是不懂你所用的编程语言的 呵呵
declare @i int,@j int,@k int,@tem varchar(400)
set @i=1
set @k=0 set @j=0
set @tem=''
while(@i<=9)
begin set @j=1------>set @j=@j+1
while(@j<10 and @j<=@i)
begin
set @k=@i*@j
set @tem=@tem+' '+cast(@i as varchar(5))+'x'+cast(@j as varchar(5))+'='+cast(@k as varchar(5))
set @j=@j+1
end
set @i=@i+1
print @tem
end
下面这个是抄来的 你试试
Declare @i Int
,@j Int
,@Out Varchar(5000)
Set @i=1
Set @j=1
Set @Out=''
While @i<=9
Begin
While @j<=@i
Begin
Set @Out= @Out + Cast(@j As Varchar(10))+ '×' + Cast(@i As Varchar(10))
+ '=' + Cast(@j*@i As Varchar(1000))
If @j*@i>=10
Set @Out=@Out + ' |' --1个空格
Else
Set @Out=@Out + ' |' --2个空格
Set @j=@j+1
End
Print @Out
Set @Out=''
-- 回车换行
-- Print CHAR(13)+CHAR(10)
Set @i=@i+1
Set @j=1
End
[ 本帖最后由 amita 于 2009-8-12 11:24 编辑 ]作者: wang_no1 时间: 2009-8-12 18:08
谢谢大家的帮忙。。。。我自己解决了 哈哈
--九九乘法口诀表
declare @i int,@j int,@k int,@tem varchar(400)
set @i=1
set @k=0
set @j=1
set @tem=''
while(@i<=9)
begin
set @j=1
set @tem=''
while(@j<10 and @j<=@i)
begin
set @k=@i*@j
set @tem=@tem+' '+cast(@j as varchar(5))+'x'+cast(@i as varchar(5))+'='+cast(@k as varchar(5))
set @j=@j+1
end
set @i=@i+1
print @tem
end