RLH*_*RLH 29 sql t-sql sql-server sql-server-2005
有没有一种简单的方法将数字(在我的情况下是一个整数)转换为逗号分隔的nvarchar字符串?
例如,如果我有一个存储在字段中的int值1000000,如何将其转换nvarchar为输出结果为"1,000,000" 的字符串?
我可以轻松编写一个函数来执行此操作,但我想确保没有更简单的方法来调用任何一个CAST或CONVERT.
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