SQL Server 2008千列分隔符

use*_*705 23 sql t-sql database sql-server sql-server-2008

我有一个名为的列TotalArea,其格式为numeric (12,2).

我想让它用千位分隔符显示数字,所以当我

select TotalArea from table
Run Code Online (Sandbox Code Playgroud)

给我看一个像这样的格式1,234.00.

我怎么能这样做?谢谢!

Rob*_*ert 34

试试这种方式:

SELECT REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, TotalArea), 1), '.00', '') 
FROM table
Run Code Online (Sandbox Code Playgroud)

要么

SELECT CAST(CONVERT(VARCHAR, CAST(123456 AS MONEY), 1) AS VARCHAR)
FROM table
Run Code Online (Sandbox Code Playgroud)


小智 30

SELECT FORMAT(12345,'#,0.00');

SELECT FORMAT(TotalArea,'#,0.00') from table;
Run Code Online (Sandbox Code Playgroud)

参考:https: //msdn.microsoft.com/en-us/library/ee634206(v = sql.105).aspx

  • 仅从 SQL Server 2012 开始支持。https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b4090663-6805-46f5-b84f-81e5eb90da30/format-works-in-2012-but-not-in-2008-what-am-我失踪了?论坛=transactsql (3认同)
  • 这是最好的答案,因为它有效——SELECT FORMAT(2222222222222222222222222,'#,0.00') (2认同)

Mat*_*eld 18

格式化显示的数字应该在显示层中完成,而不是在数据库中.因此,在任何应用程序中,这些数据最终都会被使用,您应该在那里进行格式化.不幸的是,管理工作室在这方面没有提供太多控制.