如何更改我的SQL Pivot查询语法,以便输出包括逗号和零小数?

时间:2015-10-01 17:52:27

标签: sql-server format pivot

我正在使用SQL Server 2012,我正在运行以下T-SQL数据透视查询:

USE MyDatabase

SELECT PropertyCode, ISNULL([AUGUST 2015],0) AS 'August 2015' FROM
(
 SELECT [PropertyCode], [MTH], [Package Revenue Excl VAT]

 FROM [RSDLIST]) m

 PIVOT (SUM([Package Revenue Excl VAT]) FOR [MTH] IN

 ([AUGUST 2015]

 )) AS PVTTABLE

我输出的摘录如下所示:

 PropertyCode   August 2015
    Smith        15071923.019032
    Jones            2152483.164654
    Steeve           7136836.891117

我需要格式化第二列,以便输出变为:

     PropertyCode     August 2015
        Smith         15,071,923
        Jones     2,152,483
        Steeve    7,136,836

我看过这里提供的答案: Format a number with commas but without decimals in SQL Server 2008 R2

以及来自Microsoft的这个:Format (T-SQL)

我已尝试通过在第3行用以下内容替换[Package Revenue Excl VAT]来尝试第一个:     CONVERT(varchar,CAST(a.[Package Revenue Excl VAT] AS MONEY),1) AS 'Pkg Rev'

但是,由于这些值已转换为varchar,因此无法在Pivot查询中使用它们。

1 个答案:

答案 0 :(得分:0)

--First
SELECT CONVERT(varchar, CAST(CAST(15071923.019032 as decimal(18,0)) AS money), 1)
-- Second
select replace(convert(varchar,CAST(CAST(15071923.019032 as decimal(18,0)) AS money),1), '.00','')
-- Third
SELECT Format(15071923.019032, '##,##0') 

根据您的代码尝试

select PropertyCode, ISNULL(Format(15071923.019032, '##,##0') ,0) AS 'August 2015' FROM ....