我们都知道 T-SQL 的字符串操作功能有时还有很多不足之处......
我有一个数字字段需要在 T-SQL 中作为右对齐文本列输出。例子:
Value
----------
143.55
3532.13
1.75
你会怎么做呢?一个好的解决方案应该清晰而紧凑,但请记住“太聪明”这样的事情。
我同意这是错误的地方,但有时我们会被我们无法控制的力量所困。
谢谢你。
我们都知道 T-SQL 的字符串操作功能有时还有很多不足之处......
我有一个数字字段需要在 T-SQL 中作为右对齐文本列输出。例子:
Value
----------
143.55
3532.13
1.75
你会怎么做呢?一个好的解决方案应该清晰而紧凑,但请记住“太聪明”这样的事情。
我同意这是错误的地方,但有时我们会被我们无法控制的力量所困。
谢谢你。
STR 函数有一个可选的长度参数以及一个小数位数。
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)