我试图在sql server management studio中右对齐此字段(cost)以导出到文本文件。我已经格式化了此成本字段以删除小数,该小数有四个位置,并且即使数字只是1,也始终显示至少4位数。
cast(cost*1000 as decimal(10,0)) as cost
结果:
原文:
5.3300
1.0000
135.3600
新:
5330
1000
135360
现在我只需要对齐我的结果,我不知道如何实现这一目标。我正在使用sql server management studio express 2008.非常感谢任何帮助!
答案 0 :(得分:1)
这不是您可以在查询中执行的操作。通常格式化由前端应用程序处理。
但是,在SSMS中,如果您想在"结果到文本"中看到您的查询结果。模式,您可以设置属性以将数字数据对齐。
来自工具>>选项>>查询结果>> SQL Server>>:
答案 1 :(得分:0)
I had a numeric time column of 6, but needed to display in hh:mm:ss.
and resolved this way:
select
substr(case
when length(trim(char(Num6))) = 5 then '0'||char(Num6)
when length(trim(char(Num6))) = 4 then '00'||char(Num6)
when length(trim(char(Num6))) = 3 then '000'||char(Num6)
when length(trim(char(Num6))) = 2 then '0000'||char(Num6)
when length(trim(char(Num6))) = 1 then '000000'||char(Num6)
else
char(Num6)
end, 1,2)||':'||
substr(case
when length(trim(char(Num6))) = 5 then '0'||char(Num6)
when length(trim(char(Num6))) = 4 then '00'||char(Num6)
when length(trim(char(Num6))) = 3 then '000'||char(Num6)
when length(trim(char(Num6))) = 2 then '0000'||char(Num6)
when length(trim(char(Num6))) = 1 then '000000'||char(Num6)
else
char(Num6)
end, 1,2)||':'||
substr(case
when length(trim(char(Num6))) = 5 then '0'||char(Num6)
when length(trim(char(Num6))) = 4 then '00'||char(Num6)
when length(trim(char(Num6))) = 3 then '000'||char(Num6)
when length(trim(char(Num6))) = 2 then '0000'||char(Num6)
when length(trim(char(Num6))) = 1 then '000000'||char(Num6)
else
char(Num6)
end, 5,2) as record_Time
from mytable;