2017-08-10 45 views
1

我正在使用SQL Server 2012.我需要爲數字添加逗號。前2000年應該是2000。如何在SQL Server中爲數字添加逗號?

我該怎麼辦?謝謝。

這裏是我的查詢:

declare @Term int = 20172; 

Select 
    'Applications' as 'NEW FIRST-TIME FRESHMEN', 
    Cast(Round(((Cast(y.Last_Term As FLOAT)) * 1), 2) as varchar(10)) as 'Last_Term', 
    Cast(Round(((Cast(y.Current_Term AS FLOAT))*1),2) as varchar(10)) as 'Current_Term', 
    Cast(Round(((Cast(y.Current_Term AS FLOAT) - Cast(y.Last_Term AS FLOAT)) * 1), 2) as varchar(10)) as '#Change', 
    Cast(Round((((Cast(y.Current_Term AS FLOAT) - Cast(y.Last_Term AS FLOAT))/(Cast(y.Last_Term AS FLOAT)))* 100), 2) as varchar(10)) + '%' as '%Change' 
from 
    (Select 
     Case 
      When [ACADEMIC_PERIOD_ALL_SF_COMBINED] = @Term 
       Then 'Current_Term' 
      When [ACADEMIC_PERIOD_ALL_SF_COMBINED] = @Term-10 
       Then 'Last_Term' 
     End ACADEMIC_PERIOD_ALL_SF_COMBINED, 
     [APPLICATION_COUNT] Applied 
    From 
     [IR_DW].[dbo].[vw_dw_Applied_Admitted_Enrolled_F] 
    Where 
     STUDENT_LEVEL ='UG' 
     and STUDENT_POPULATION ='N' 
     and ACADEMIC_PERIOD_ALL_SF_COMBINED between @Term-10 and @Term 
     and ACADEMIC_PERIOD_ALL_SF_COMBINED like '%2') x 
Pivot 
    (sum(Applied) 
     for ACADEMIC_PERIOD_ALL_SF_COMBINED in ([Current_Term] , [Last_Term]) 
)y 

output

+5

如果可能,您應該在表示層執行此操作,而不是在查詢中格式化。 –

+0

我嘗試過,但我必須在表示層做很多改變。 –

+0

這是你能做的最好的事情! :) –

回答

4

真正屬於在表示層,但在2012+,你可以使用格式()。這是一個很棒的功能,但不是一個很好的表演者。

Select Format(25302.25,'#,##0') 

返回

25,302 
1

見類似的問題here。你要做的是CAST首先進行收費,然後CONVERT到VARCHAR。

+0

是的,我知道了:)將'convert'(varchar,convert(money,y.Last_Term),1),'。00','')改爲'Last_Term' –

相關問題