首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在T-SQL中使用逗号格式化数字?

如何在T-SQL中使用逗号格式化数字?
EN

Stack Overflow用户
提问于 2010-12-07 21:56:29
回答 15查看 556.2K关注 0票数 234

我正在运行一些管理查询,并在SQL Server2008中编译来自sp_spaceused的结果,以查看数据库中某些表的数据/索引空间比率。当然,我在结果中得到了各种各样的大数字,我的眼睛开始变得模糊起来。如果我能用逗号格式化所有这些数字(987654321变成987,654,321),那就太方便了。有趣的是,在我使用SQL Server的这么多年里,这个问题从来没有出现过,因为我大部分时间都是在表示层进行格式化,但在这种情况下,SSMS 中的T-SQL结果是表示。

我曾经考虑过创建一个简单的CLR UDF来解决这个问题,但是看起来这在普通的老式T-SQL中应该是可行的。因此,我将在这里提出一个问题--如何在普通的T-SQL中进行数字格式化?

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2015-09-26 04:41:03

在SQL Server 2012和更高版本中,这将使用逗号格式化数字:

代码语言:javascript
复制
select format([Number], 'N0')

您还可以将0更改为所需的小数位数。

票数 262
EN

Stack Overflow用户

发布于 2010-12-07 22:02:44

虽然我同意包括OP在内的每个人的观点,他们认为格式化应该在表示层完成,但在T-SQL中,可以通过转换为money,然后转换为varchar来完成这种格式化。但是,这确实包括尾随小数,可以用SUBSTRING循环删除。

代码语言:javascript
复制
SELECT CONVERT(varchar, CAST(987654321 AS money), 1)
票数 264
EN

Stack Overflow用户

发布于 2011-09-24 05:05:29

我建议替换掉Substring,以避免字符串长度问题:

代码语言:javascript
复制
REPLACE(CONVERT(varchar(20), (CAST(SUM(table.value) AS money)), 1), '.00', '')
票数 60
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4377352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档