我有一個查詢應該顯示一些基於特定條件的數據。將百分比字段轉換爲浮點型時出現錯誤結果
當顯示的數據我有我的查詢以下條件:
cast(percentage as float)/100 < 0.50)
應該給我值小於50%。
但是,當執行查詢時,它給了我值95,100 ...但從未給我小於0.50,即使我在查詢中指定條件。
在做從表中的單個選擇檢查值有什麼,我得到0.95:
select cast(percentage as float)/100 from table1 where id ='1111'
我在做什麼錯?什麼是解決方案?
這是我的where
子句:
WHERE msystem = '111'
AND (
(code = '2222' AND cast(percentage as float)/100 < 0.50)
OR (code = '3333')
)
您可以發佈更多的查詢 - 或者至少更多WHERE子句?你有'OR'條件嗎?這可以根據運算符優先級來改變結果。 –
該查詢是正確的。現在我將更新我的帖子 –
當處理Float數據類型時,您將在計算中得到意想不到的結果,因爲float是虛數/近似數字,當您對虛數進行計算時/近似結果也將是虛數/近似值。要獲得確切的值,請使用數字或十進制等確切數據類型之一。 –