2008-09-03 149 views
2

我正在尋找使用SQL來格式化一個逗號數千,但沒有小數(所以不能使用金錢) - 任何建議嗎?SQL編號格式

我使用的是SQL Server 2005中,但隨時回答其他人也(如MySQL)

回答

4

使用TSQL你可以投錢並轉換它將增加.00,但你可以使用替換或子字符串來刪除。

replace(convert(varchar, cast(column as money), 1), '.00', '') 

SQL 2005中您可以使用CLR函數以及

[Microsoft.SqlServer.Server.SqlFunction] 
public static SqlString FormatNumber(SqlInt32 number) 
{ 
    return number.Value.ToString("N0"); 
} 

並把它作爲任何其它用戶定義的函數

SELECT dbo.FormatNumber(value) 
2

在Oracle中,你可以指定一個格式參數to_char函數:
TO_CHAR(1234,'9,999') - > 1,234

0

對於SQL Server,可以將數字格式化爲金錢,然後刪除最右邊的三個字符。

replace(convert (varchar, convert (money, 109999), 1), '.00','') 
2

你想在服務器端完成這個任何特定的原因?看起來這是一個更適合客戶/報告的任務。

否則,你是存儲號碼作爲字符串,所以您可以保留原來的格式你想要的 - 但你只是失去了做就可以了,甚至基本的算術能力,而無需將其重新轉換爲數字。

如果你真的決定在SQL中做這件事,並有合理的理由,我想我的投票是在Scott的方法上:Value - > Money - > Varchar - >修剪小數部分

- Kevin Fairchild