我选择价格1000000,我需要将其格式化为$ 1,000,000。我怎么能在SQL中做到这一点?
答案 0 :(得分:3)
要使用逗号格式化,您可以使用1
样式declare @money money = 1000000
select '$' + convert(varchar, @money, 1)
:
$1,000,000.00
将生成select '$' + left(convert(varchar, @money, 1), charindex('.', convert(varchar, @money, 1)) - 1)
如果你想删除最后3个字符:
select '$' + left(convert(varchar, @money + $0.50, 1), charindex('.', convert(varchar, @money, 1)) - 1)
如果你想要舍入而不是截断:
{{1}}
答案 1 :(得分:1)
创建功能
CREATE FUNCTION [dbo].[f_FormatMoneyValue]
(
@MoneyValue money
)
RETURNS VARCHAR(50)
AS
BEGIN
RETURN cast(@MoneyValue as numeric(36,2))
END
在选择查询中使用
Select dbo.f_FormatMoneyValue(isnull(SalesPrice,0))SalesPrice from SalesOrder
<强>输出:强>
100.00
使用“$”符号格式化货币值
CREATE FUNCTION [dbo].[f_FormatMoneyWithDollar]
(
@MoneyValue money
)
RETURNS VARCHAR(50)
AS
BEGIN
RETURN '$' + convert(varchar, @MoneyValue, 1)
END
<强>输出:强>
$ 100.00
注意:以上示例适用于货币字段。您可以根据需要修改此功能 希望这可以帮助你......! :d
答案 2 :(得分:0)
SQL Server money数据类型只是十进制(10,4)。据我所知,没有数据类型可以呈现您想要的方式。
添加美元符号和逗号是应该属于应用程序逻辑的东西,但是如果你真的必须通过数据库对象来考虑,那么考虑添加美元符号和逗号每三个字符(小数点后)。换句话说,你必须将int转换为varchar并进行字符串操作。
答案 3 :(得分:0)
对于PostgreSQL PL / pgSQL和Oracle PL / SQL,您可以使用to_char
格式化数字:
select to_char(1234567.123, 'FM$999,999,999.99')
提供输出:
$1,234,567.12
请参阅:http://www.postgresql.org/docs/7/static/functions2976.htm
答案 4 :(得分:0)
SELECT FORMAT(price, 'C2', 'en-us')