SQL数字格式
时间:2020-03-05 18:47:10 来源:igfitidea点击:
我正在寻找使用SQL格式化以逗号表示的数字的形式,但没有小数点(因此不能使用Money)有什么建议吗?
我使用的是SQL Server 2005,但也随时可以为其他人解答(例如MySQL)
解决方案
回答
在MySQL中,FORMAT()函数可以解决问题。
回答
使用TSQL,我们可以转换为货币并将其转换为.00,但可以使用replace或者substring删除。
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)
回答
在Oracle中,我们可以为to_char函数指定格式参数:
TO_CHAR(1234,'9,999')-> 1,234
回答
对于SQL Server,我们可以将数字格式设置为money,然后删除最右边的三个字符。
replace(convert (varchar, convert (money, 109999), 1), '.00','')
回答
我们要在服务器端完成此操作的任何特定原因?似乎这是一项更适合客户/报告的任务。
否则,你的存储数量为字符串,所以我们可以保留原来的格式你想要的 - 但你只是失去了做连基本的算术就可以了,而不必把它重新转换为数字的能力。
如果我们真的确定要使用SQL并有合理的理由,我想我的投票是对Scott的方法的:值->金钱-> Varchar->舍去小数部分
-凯文·费尔柴尔德(Kevin Fairchild)