[解決済み] ORA-01476: SQLクエリで「除数が0に等しい」(Oracle 10g)。
2022-03-04 15:32:34
質問
私は、Oracle 10gの下でSQLクエリを作成している、結果は私にそのような何かを与える必要があります。
----------------------------------------------------------------------------------
TEXT VALUE1 VALUE2 VALUE3 VALUE4
---------------------------------------------------------------------------------
TEXT1 8795 5684 value1-value2 value3/value2*100
TEXT2 235 568 ... ...
TEXT3 125 23 ... ...
TEXT4 789 58 ... ...
TEXTN 0 0 ... ...
VALUE4 カラムを計算しようとすると、このエラーが発生します。
ORA-01476: le diviseur est égal à zéro
01476. 00000 - "divisor is equal to zero"
*Cause:
*Action:
試してみた
DECODE
関数でも同じエラーが発生します。
CASE
注:VALUE1, VALUE2, VALUE3, VALUE4 は計算されたカラムで、VALUE1 = sum(col1)+sum(col2)... と他の VALUE2 カラムも同じです。
ありがとうございます。
解決方法は?
すべては、ある値が無限になる場合に計算したいのか、そうでない場合に計算したいのかによります。これらの特殊なケースを無視して、以下のように余りを計算することができます。 ゴードンの答え で提案しています。
case when value2 <> 0 then value3 / value2 * 100 end
また、それらを無視したい場合は、以下のようにします。
NULLIF()
を使用すると、値をNULLに変更し、何も計算しないようになります。
value3 / nullif(value2, 0) * 100
これが計算されたカラムであることが問題を引き起こすというあなたの主張が理解できないのですが。もしこれが仮想カラムであれば、テーブルが作成されることはないでしょう。 ドキュメント 仮想カラムは他のカラムを名前で参照することはできません。
仮想カラムでない場合は、通常通りselect文の中で行います。
関連
-
[解決済み】ストアドプロシージャーのエラー ORA-06550
-
[解決済み] varchar データ型から datetime データ型に変換すると、SQL クエリで範囲外の値が発生する
-
[解決済み] ora-06553 pls-306 'ogc_x' の呼び出しで引数の数または種類が誤っている。
-
[解決済み] Oracle Trigger ORA-04098: トリガーが無効で、再バリデーションに失敗しました。
-
[解決済み] T-SQLでnot equalには!=と<>のどちらを使うべきですか?
-
[解決済み] クエリビルダーのSQLクエリを文字列として出力するにはどうすればよいですか?
-
[解決済み] SQLクエリは、複数のテーブルからデータを返す
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?
-
[解決済み】結合を使用したSQL更新クエリ
-
[解決済み】SQLの「ゼロによる除算」エラーを回避する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] varchar データ型から datetime データ型に変換すると、SQL クエリで範囲外の値が発生する
-
[解決済み】オペランド型の衝突:intはdateと互換性がない + INSERT文はFOREIGN KEY制約と衝突した
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み】INTERSECTとINNER JOINは根本的に違うのか?[重複している]
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] varchar 値の変換で int カラムがオーバーフローしました。
-
[解決済み] SQLです。最初の出現箇所のみを返す
-
[解決済み] オペランド型の衝突:uniqueidentifierはintと互換性がない
-
[解決済み] MySQLのON句の不明なカラム