我正在运行一些管理查询,并在SQL Server2008中编译来自sp_spaceused
的结果,以查看数据库中某些表的数据/索引空间比率。当然,我在结果中得到了各种各样的大数字,我的眼睛开始变得模糊起来。如果我能用逗号格式化所有这些数字(987654321变成987,654,321),那就太方便了。有趣的是,在我使用SQL Server的这么多年里,这个问题从来没有出现过,因为我大部分时间都是在表示层进行格式化,但在这种情况下,SSMS 中的T-SQL结果是表示。
我曾经考虑过创建一个简单的CLR UDF来解决这个问题,但是看起来这在普通的老式T-SQL中应该是可行的。因此,我将在这里提出一个问题--如何在普通的T-SQL中进行数字格式化?
发布于 2015-09-26 04:41:03
在SQL Server 2012和更高版本中,这将使用逗号格式化数字:
select format([Number], 'N0')
您还可以将0
更改为所需的小数位数。
发布于 2010-12-07 22:02:44
虽然我同意包括OP在内的每个人的观点,他们认为格式化应该在表示层完成,但在T-SQL中,可以通过转换为money
,然后转换为varchar
来完成这种格式化。但是,这确实包括尾随小数,可以用SUBSTRING
循环删除。
SELECT CONVERT(varchar, CAST(987654321 AS money), 1)
发布于 2011-09-24 05:05:29
我建议替换掉Substring,以避免字符串长度问题:
REPLACE(CONVERT(varchar(20), (CAST(SUM(table.value) AS money)), 1), '.00', '')
https://stackoverflow.com/questions/4377352
复制相似问题