
No.1ベストアンサー
- 回答日時:
10や3という数値定数を指定すると、データ型がint(整数)と仮定されます。
そして10/3も演算の中間結果もint同士の演算なので、データ型はintになるため、ここで小数点以下が切り捨てられます。これを防止するには、10や3を10.000や3.000のように、データ型にdecが仮定され、小数点以下を保持できるようにします。小数点以下の精度をどのくらい保証できるようにしたいかにより、10.0や10.000あるいは、10.00000のように指定します。
今回のケースでは、
select to_char(10.000/3.000, '99D999');
のように指定すれば、期待した結果を得られます。
他のRDBMSでも細かくは確認していませんが、同じようなことが言えます。またSQLに限らず、プログラミング言語でも演算の中間結果がどういうデータ型になるか注意しないと、演算精度がまったく違うものになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT INTOで一度に複数の変数...
-
【SQL】他テーブルに含まれる値...
-
PostgresSQLで自動計算
-
フラグをたてるってどういうこ...
-
追加クエリで重複データなしで...
-
【sqlite3】deleteしても.dbフ...
-
ExcelのMatch関数のようなもの...
-
dumpでインデックスだけ抜きたい
-
エクセルVBA 10分後にエクセル...
-
グループ単位での表示?
-
serial型について
-
オラクルのUPDATEで複数テーブル
-
テーブル定義書(Oracle) 【IX】...
-
VBAでの行数を揃える方法
-
SQLサーバに対するSQL文で抽出...
-
UPDATEで既存のレコードに文字...
-
Accessの構成をコピーしたい
-
データベース ユーザの「このユ...
-
副問合せを使わずにUNIONと同様...
-
テーブル名が可変の場合のクエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT INTOで一度に複数の変数...
-
UPDATEの更新前の値を取得したい
-
複数の条件に該当する結果を、...
-
SELECTした結果に行番号を求めたい
-
データの入れ替えを同時に行な...
-
ダブリ数字の有無の確認にのマ...
-
プログラムよりファンクション...
-
PLPGSQLでの複数行複数列
-
副問合せで複数列の値リストの...
-
Pro*CでのSQL文について
-
where notにつて
-
パターンマッチング
-
SQLで小数点の計算がしたいです。
-
oleDBでnumeric形式の小数部分...
-
FETCH した行が取り出せない
-
複数カラムでdistinct
-
テーブル間の差分抽出方法は?...
-
SQLで任意の列の最大値の定数は...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
おすすめ情報