Microsoft SQL Server 中的简单 SQL 查询:
SELECT ROUND(SUM(金额), 2) AS '金额' FROM accvoucherlines WHERE vid=10000174
返回正确舍入的结果,例如712.72
但是相同的查询,当后缀为'FOR JSON PATH'返回科学格式的数字时,例如[{"Amount":7.127200000000000e+002}]
我实际上需要 JSON 格式的舍入值。为什么它没有按预期工作?
通过将数字转换为 DECIMAL(18,2),推送 SQL 来减少小数位数:
SELECT CONVERT(DECIMAL(18,2),ROUND(SUM(a.amount), 2)) AS [Amount]
FROM accvoucherlines a
WHERE a.vid=10000174
FOR JSON PATH
;
Run Code Online (Sandbox Code Playgroud)
要玩的查询:
SELECT CONVERT(DECIMAL(18,2),ROUND(SUM(a.amount),2)) AS [Amount]
FROM (VALUES(3.45634563),(5.1273322)) a(amount)
FOR JSON PATH
;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2697 次 |
| 最近记录: |