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)