在SQL Server中将数字数据右对齐
时间:2020-03-05 18:51:36 来源:igfitidea点击:
我们都知道T-SQL的字符串操作功能有时还有很多不足之处……
我有一个数字字段,需要在T-SQL中将其作为右对齐的文本列输出。例子:
Value ---------- 143.55 3532.13 1.75
你会怎么做?一个好的解决方案应该简洁明了,但请记住,有一个"太聪明"的问题。
我同意这是做这件事的错误地方,但有时我们会被无法控制的力量所困。
谢谢你。
解决方案
回答
STR函数具有一个可选的length参数以及一个十进制数。
SELECT STR(123.45, 6, 1) ------ 123.5 (1 row(s) affected)
回答
如果必须在SQL中执行此操作,则可以使用以下代码(此代码假定我们没有大于40个字符的数字):
SELECT REPLICATE(' ', 40 - LEN(CAST(numColumn as varchar(40)))) + CAST(numColumn AS varchar(40)) FROM YourTable
回答
最简单的方法是向左移:
CREATE FUNCTION PadLeft(@PadString nvarchar(100), @PadLength int) RETURNS nvarchar(200) AS begin return replicate(' ',@padlength-len(@PadString)) + @PadString end go print dbo.PadLeft('123.456', 20) print dbo.PadLeft('1.23', 20)