1
我有一個類似的查詢:SQL服務器未找到記錄包含浮點值,它返回
SELECT SpecimenID, TestPeriodID, Grams, ConsumptionRate FROM LabData
WHERE TestPeriodID = 255
AND TestID = 1
AND Grams = 728560
時返回先後爲FLOAT列ConsumptionRate一個的16.5667068820687值的記錄。
我現在以下內容添加到我的查詢的末尾:
AND ConsumptionRate = 16.5667068820687
執行新的查詢返回零個記錄,即使附加條件是什麼SQL Server本身的報道。我認爲這是一個舍入誤差。但是,我有一個CLR函數,它根據第一個返回的結果執行第二個查詢。
我能做些什麼,以我的生成的搜索條件來維持的第一個結果的準確表示,但在第二個結果不可錯過現有的記錄?
什麼是ConsumptionRate的數據類型? 'EXECUTE sys.describe_first_result_set N'SELECT ConsumptionRate FROM LabData AS L'' – billinkc
我猜一個人正在被解釋爲DECIMAL。 'DECLARE @x FLOAT = 16.5667068820687; SELECT @x WHERE @x = CONVERT(DECIMAL(28,12),16.5667068820687);'你爲什麼要使用FLOAT(已經知道並記錄在案的四捨五入問題 –
此外,你爲什麼將行標識由值,而不是由? ?ID列這就好比識別的名稱或DateHired,而不是通過SSN或僱員的員工 - 當你聘請了兩位約翰·史密斯會發生什麼就在同一天 –