SQL SERVER產生數字含千符號

通常資料庫欄位金額欄位都會開numeric,但是有時候應用程式或報表呈現都會需要顯示千符號,而這次客戶需求要將資料匯出時也產生千符號。底下為幾個範例

在sql server 2012以上版本可以使用format函數可以做到,若是sql 2005時可以使用轉換為money資料型態後再轉換為varchar搭配參數即可

declare @num numeric(18,4)=2343243.234
select N’去掉小數點(適用於sql 2012以上)’ note,format(@num,’N0′) value–去掉小數點(適用於sql 2012以上)
union all
select N’兩位小數點(適用於sql 2012以上)’, format(@num,’N2′) –兩位小數點(適用於sql 2012以上)
union all
select N’去掉小數點(適用於sql 2005以上)’,replace(convert(varchar(18),cast(cast(@num as numeric(18)) as money),1),’.00′,") –去掉小數點(適用於sql 2005以上)
union all
select N’固定產生兩位小數點(適用於sql 2005以上)’, convert(varchar(18),cast(@num as money),1) –固定產生兩位小數點(適用於sql 2005以上)

union all
select N’去掉小數點,左補空白(適用於sql 2012以上)’, cast(format(@num,’N0′) as char(18))–去掉小數點,左補空白(適用於sql 2012以上)
union all
select N’去掉小數點,右補空白(適用於sql 2012以上)’, right(cast(" as char(18))+format(@num,’N0′),18)–去掉小數點,右補空白(適用於sql 2012以上)

image