目标
在简洁的语句中将结果格式化COUNT
为通用格式(例如###,##0
),并且不使用 UDF。
我试过了
我目前正在使用这样的东西,虽然它留下了两位小数并且很笨重:
SELECT CONVERT(VARCHAR, CAST(COUNT([id]) AS MONEY), 1) FROM tbl
我选择这个方向的原因是因为它是我在阅读MSDN的CAST 和 CONVERT文档时能找到的唯一标准格式选项。
我不是很喜欢它,但它会一瘸一拐,因为这些数字只是在 T-SQL 运行后被复制并粘贴到其他文本编辑器等中。他们当然必须手动格式化以删除某些地方的小数。
研究和限制
当然,您可以构建一个用户定义的函数,就像这个博客上的这个函数一样,但是我有一个限制,使我无法为此目的构建 UDF。
经过一些额外的研究,我发现如果我使用的是 SQL 2012,我可以使用新的 T-SQLFORMAT
函数,唉,我仅限于 2008 R2。这当然利用了不同的平台,因为它是一个 .NET 接口。:D
我也知道这个解决方案:Format a number with commas but without decimals in SQL Server 2008 R2?