我有以下声明。我的期望是,如果价格低于1.00然后显示4位有效数字,否则显示2。
<div class="wrapper">
<div class="row"></div>
</div>
给出以下结果:
Select CAST(10.99 AS DECIMAL(38,4)) C
, CAST(10.99 AS DECIMAL(38,2)) D
, CAST(1 AS DECIMAL(38,4)) AS LESS
, CAST(1 AS DECIMAL(38,2)) AS GREATER
, (CASE
WHEN CAST(10.99 AS DECIMAL(38,4)) < CAST(1 AS DECIMAL(38,4)) THEN
CAST(10.99 AS DECIMAL(38,4))
ELSE CAST(10.99 AS DECIMAL(38,2))
END) AS PRICE_FORMATTED
FROM MY_PRICE_TBL ;
我明确地在此示例中使用了所有内容,以显示LESS和GREATER列正在正确投放,但格式错误。我希望PRICE_FORMATTED值与Col D中的值相同
是什么给出了?
答案 0 :(得分:1)
PRICE_FORMATTED
与<{1}}相同的值,只是它的分数精度不同。
CAST返回单个列,此列具有数据类型。当解析器选择最佳匹配时返回不同的数据类型。当然小数(38,4)和(38,2)是不同的,然后使用具有更高小数位的小数。
您可以尝试不显示尾随零的NUMBER数据类型,但D
也会显示为10.9000
。