いずれにせよ、次の形式でクエリがあります
select
(select count(*) from sometable where somecritiea) / ((select count(*) from sometable where somecritiea) + 0.000001)
from sometable
カウントの結果をカウントの結果で割るので、null は問題になりません。
これを実行すると、「ゼロ除算エラーが発生しました。」が表示されます。除数の +0.000001 に注目してください。
列挙子 (?) と除数を新しいテーブルに挿入してから同じ計算を実行すると、期待どおりに機能します。
select
(select count(*) from sometable where somecritiea) a/ ((select count(*) from sometable where somecritiea) + 0.000001) b
into testtable
from sometable
テストテーブルから a/b を選択
これにより、期待される結果がエラーなしで返されます。
私が走れば
select * from testtable where b = 0
i get 0 records as expected.
私は本当にここでそれを失っています.これは5時間の混乱に変わった5分の仕事です.
私も試してみました
select *
((select count(*) from sometable where somecritiea) + 0.000001) divisor
from sometable
where divisor = 0
これはレコードを返しません。