如何将数字转换为数字,逗号分隔的格式化字符串?

RLH*_*RLH 29 sql t-sql sql-server sql-server-2005

有没有一种简单的方法将数字(在我的情况下是一个整数)转换为逗号分隔的nvarchar字符串?

例如,如果我有一个存储在字段中的int1000000,如何将其转换nvarchar为输出结果为"1,000,000" 的字符串?

我可以轻松编写一个函数来执行此操作,但我想确保没有更简单的方法来调用任何一个CASTCONVERT.

Mic*_*mes 54

您在T-SQL中找不到如何执行此操作的简单示例的原因是,在SQL代码中实现格式化逻辑通常被认为是不好的做法.RDBMS根本不是为演示而设计的.尽管可以进行一些有限的格式化,但让应用程序或用户界面处理此类型的格式化几乎总是更好.

但是,如果您必须(有时我们必须!)使用T-SQL,将您的int转换为money并将其转换为varchar,如下所示:

select convert(varchar,cast(1234567 as money),1)
Run Code Online (Sandbox Code Playgroud)

如果您不想要尾随小数,请执行以下操作:

select replace(convert(varchar,cast(1234567 as money),1), '.00','')
Run Code Online (Sandbox Code Playgroud)

祝好运!


小智 21

对于SQL Server 2012或更高版本,更简单的解决方案是使用FORMAT ()文档.
例如:

SELECT Format(1234567.8, '##,##0') 
Run Code Online (Sandbox Code Playgroud)

结果是: 1,234,568