web-dev-qa-db-ja.com

SQLでの小数点以下2桁への丸め

ゼロになると小数点以下2桁に丸めるたびに丸める必要はありません。

SELECT ROUND(COLUMN_NAME,2) FROM ....

それは私に与えている

COLUMN_NAME
92

でも私はしたい

COLUMN_NAME
92.00

TO_CHARを使用しましたが、うまくいきました

ROUND(TO_CHAR(COLUMN_NAME),2)

みんなありがとう!

18
Manual

tO_CHAR関数を使用して結果を変換することができます

例えば.

SELECT TO_CHAR(92, '99.99') AS RES FROM DUAL

SELECT TO_CHAR(92.258, '99.99') AS RES FROM DUAL

それが役に立てば幸い

22
Rohan

クエリでの書式設定は避けてください。データを未加工形式で返し、受信側アプリケーション(レポートサービスやエンドユーザーアプリなど)にフォーマット、つまり丸めなどを行わせる必要があります。

サーバー内のデータをフォーマットすると、データをさらに処理することが難しくなります(不可能になることさえあります)。通常、テーブルをエクスポートするか、合計、平均などの集計を行います。数字は文字列(varchar)として到着するため、通常、それらをさらに処理する簡単な方法はありません。一部のレポート設計者は、これらの「番号」を集約するオプションの提供を拒否することさえあります。

また、エンドユーザーには、自分のPCではなく、サーバーの国固有のフォーマットが表示されます。

また、丸めの問題も考慮してください。サーバーで値を四捨五入した後、さらに計算を行うと(クライアントが数値文字列を数値に戻すことができると仮定すると)、誤った結果が得られます。

7
alzaimar

そのためにFORMATオプションを指定してCOLUMNコマンドを使用してみてください。

COLUMN COLUMN_NAME FORMAT 99.99
SELECT COLUMN_NAME FROM ....
4
Aaron

これも機能します。以下のステートメントは、小数点以下2桁に丸めます。

デュアルからSELECT ROUND(92.258,2);

2
newbie