print 输出对齐问题

qq_35418938 2016-06-25 09:32:25



利用存储过程以及游标输出时,怎么对齐,让排版更好看。
...全文
506 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35418938 2016-06-29
  • 打赏
  • 举报
回复
谢谢各位的解答,已经解决。
LongRui888 2016-06-27
  • 打赏
  • 举报
回复
你只是要让输出对其吗? 一般都是直接查询数据后,由程序来格式化输出,这样比较方便,而如果直接用sql语句来格式化,就会比较麻烦
中国风 2016-06-25
  • 打赏
  • 举报
回复
在在类型赋值时指定为char固定长度再做加减字符串输出 e.g.

DECLARE @ID CHAR(10)='0101',@Name NCHAR(10)='Roy'
PRINT @ID+@Name
/*
0101      Roy       
*/
卖水果的net 版主 2016-06-25
  • 打赏
  • 举报
回复
用 datalength 求出长度,再补空格;
唐诗三百首 2016-06-25
  • 打赏
  • 举报
回复

create table qq354(姓名 varchar(10),成绩 int)

insert into qq354
  select '夏建平',27 union all
  select '沈涛',33 union all
  select '沈涛',46 union all
  select '胡国华',46 union all
  select '欧阳某某',99 union all
  select '李白',100 union all
  select '李太白',97


create proc sp_qq354
as
begin
 declare @name varchar(10),@score int
 declare ap scroll cursor for select 姓名,成绩 from qq354

 print '姓名               成绩'

 open ap
 fetch first from ap into @name,@score
 while(@@fetch_status<>-1)
 begin
    print @name
            +replicate(nchar(32),16-4*(len(@name)-2))
            +rtrim(@score)
    fetch next from ap into @name,@score
 end

 close ap
 deallocate ap
end


exec sp_qq354

/*
姓名               成绩
夏建平            27
沈涛                33
沈涛                46
胡国华            46
欧阳某某        99
李白                100
李太白            97
*/

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧