我需要在查询中显示一个美元范围,但是当我连接这些值时,我会在输出中丢失逗号。
select
'$'||CAST(ROUND(MIN(db.INITIAL_BALANCE),-1) AS money)
||' to '||
'$'||CAST(ROUND(MAX(db.INITIAL_BALANCE),-1) AS money) AS Balance_Range
输出是 $ 2060至$ 73690
期望的输出 $ 2,060至$ 73,690
对此有何建议?
Intersystems Cache是我的数据库
答案 0 :(得分:1)
为什么你认为你甚至有逗号? documentation对格式化值没有任何说明。
MONEY和SMALLMONEY是货币数字数据类型。货币数据类型的比例始终为4.
SELECT CAST('123123' AS money)
此查询将按预期返回123123.0000
正如我所见,至少有两种方法可以做到这一点。
如下所示:
Class Sample.Utils Extends %RegisteredObject
{
ClassMethod ToMoney(pValue As %Integer = 0) As %String [ SqlProc, SqlName= "TO_MONEY"]
{
quit "$ " _ $fnumber(pValue, ",", 2)
}
}
查询SELECT Sample.TO_MONEY(1234567)
将返回$ 1,234,567.00
答案 1 :(得分:1)
'$'||TRIM(tochar(MIN(db.Account_Balance),'9,999,999'))|| ' to ' ||'$'||TRIM(tochar(max(db.Account_Balance),'9,999,999'))
给了我所需要的东西..谢谢!