1

DBのフィールドを小数点以下2桁で四捨五入したい(商品価格)

しかし、価格が整数分数 (例: 10.00) の場合、小数点以下 (つまり 10) なしで返されるようにしたいと思います。

これまでのところ ROUND(価格, 2); 要件を解決しない

ありがとう

4

2 に答える 2

0

これを達成するための単一の方法が存在するかどうかはわかりませんが、このようなことを試すことができます.

SELECT CASE WHEN MOD(50.00, 50) = 0 THEN ROUND(50.00) ELSE ROUND(50.00,2) END;

上記のステートメントは 50 を返します

SELECT CASE WHEN MOD(50.10, 50) = 0 THEN ROUND(50.10) ELSE ROUND(50.10,2) END;

上記のステートメントは 50.10 を返します

動的列名で数値を変更できます。

于 2013-02-19T18:51:36.027 に答える
0

どうですか:

(case when right(format(val, 2), 3) = '.00' then format(val, 0)
      else format(val, 2)
 end)

これにより、コンマが大きな数に追加されます。

于 2013-02-19T18:50:19.110 に答える