当我执行以下查询时:
DECLARE @KG FLOAT = 5.0;
WITH Weight(KG, LB) AS (SELECT @KG, @KG * 2.2046226218)
SELECT * FROM Weight;
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
| KG | LB |
|----|--------------|
| 5 | 11.023113109 |
Run Code Online (Sandbox Code Playgroud)
现在,当我简单地附加FOR JSON AUTO到输出 JSON 时,
声明 @KG 浮动 = 5.0;
带重量(KG,LB)AS(选择@KG,@KG * 2.2046226218)
从重量中选择 * FOR JSON AUTO;
我得到以下输出:
[{"KG":5.000000000000000e+000,"LB":1.102311310900000e+001}]
Run Code Online (Sandbox Code Playgroud)
我知道上面是有效的 JSON,但我想要的输出是:
[{"KG":5,"LB":11.023113109}]
Run Code Online (Sandbox Code Playgroud)
重要提示:我意识到只需将其声明@KG为DECIMALor即可获得所需的输出INT。我宁愿不这样做,因为我正在从VIEW我没有编辑权限的列表中进行选择,并且如果可能的话,我不想将每一FLOAT列单独转换为DECIMAL。
有没有办法做到这一点而不将每个单独的值投射到DECIMAL?