sql存储过程打印图形

print '三角形'
declare @a int 
set @a=1
while(@a<10)
begin
print replace(space(@a),' ','*')
set @a=@a+1
end
go
print '-------------'
print '正方形'
declare @a int declare @b int
declare @c nvarchar(100)
set @a=1 set @b=1 set @c=''

while (@a<10)
begin
   while (@b<10)
   begin 
    set @c=@c+'* '
    set @b=@b+1
   end
    print @c 
set @a=@a+1
end
go

print '-------------'
print '菱形'
declare @a int,@b int
set @a=1 set @b=9

if(@b%2!=1)
print '数字必须都是奇数'
else
while(@a<=@b)
begin
if(@a%2=1)
print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)
set @a=@a+1
end
set @a=@a-2
while (@a<=@b)
begin
if(@a%2=1)
print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)
set @a=@a-1    
if (@a<0)
break
end
go
--优化版本
print '-------------'
print '菱形'
declare @a int,@b int
set @a=1 set @b=9

if(@b%2!=1)
print '数字必须都是奇数'
else
while(@a<=@b)
begin
print space((@b-@a)/2)+replace(space(@a),' ','*')
set @a=@a+2
end
set @a=@a-4
while (@a>=0)
begin
print space((@b-@a)/2)+replace(space(@a),' ','*')
set @a=@a-2
end  
go
print '-------------'
print '梯形'
declare @a int,@b int
set @a=3 set @b=10
if(@a%2=1)
while(@a<@b)
begin
print space((@b-@a)/2)+replace(space(@a),' ','*')
set @a=@a+2
end
go


posted @ 2017-03-28 19:16  DHclly  阅读(562)  评论(0编辑  收藏  举报