例如我有一个网络共享1786234247.87我怎么能在它之前加一美元而在数字和一轮之后加一十亿美元作为17亿美元
答案 0 :(得分:1)
要做到这一点,您必须将数据类型转换为浮点数或小数以外的其他类型或您现在拥有的任何类型。你可以更好地在表示层进行转换,无论是HTML,SSRS报告等等。
如果你不想接受这个,那么你会受到一些伤害。这就是您的解决方案的样子:
DECLARE @Money DECIMAL = 121343044114.52
SELECT
MoneyString =
CASE
WHEN @Money BETWEEN 1000000 AND 999999999 THEN '$' + SUBSTRING(CONVERT(VARCHAR(MAX), @Money), 0, LEN(CONVERT(VARCHAR(MAX), @Money))-5) + ' MILLION'
WHEN @Money BETWEEN 1000000000 AND 999999999999 THEN '$' + SUBSTRING(CONVERT(VARCHAR(MAX), @Money), 0, LEN(CONVERT(VARCHAR(MAX), @Money))-8) + ' BILLION'
END
,SUBSTRING(CONVERT(VARCHAR(MAX), @Money), 0, LEN(CONVERT(VARCHAR(MAX), @Money))-5)
它需要做很多工作,但是如果你绝对必须这样做,你就会知道你将要做什么。
答案 1 :(得分:-1)
你问的是哪种sql语言方言?每种方言都有不同的选择来执行此操作。
但这里是mysql,postgresql和redshift的一般响应
这里是mssql的stackoverflow
SQL Server 2008: how to format the output as a currency 击>
==================================
SQL 2012的精致答案
https://msdn.microsoft.com/en-us/library/hh213505.aspx
SELECT FORMAT(123.456, 'C', 'en-us');