51Testing软件测试论坛

标题: 一个关于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




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2