我有一个查询某些数据并通过电子邮件发送它的存储过程,我想更改程序,以便数千个中的任何数字都以逗号显示为1,000。我想在SQL中执行此操作的最佳方法是将其转换为字符串并添加逗号?
由于
答案 0 :(得分:2)
这是相对干净的答案。转换为货币(没有数据类型丢失)。然后转换为样式1的varchar(它为你做逗号),然后从结尾删除.00,因为它带有货币数据类型。
select REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, 1234), 1), '.00', '')
在进行内联函数之前,弄清楚有多少字符串操作是一个很好的界限,但这应该是一个非常快速的转换。
谢谢, 埃里克
答案 1 :(得分:1)
正确。根据数据类型的定义,整数没有格式。
因此,您必须将值转换为字符串(例如varchar),或者更常见的做法是,让表示层处理值的格式。
答案 2 :(得分:0)
如果您使用SQL Server作为电子邮件的演示文稿(没有其他报告应用程序),
SELECT CONVERT(varchar(24),CONVERT(money,CAST( 12345678 AS VarChar(24))),1)