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 @   DHclly  阅读(573)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示