我在SQL Server數據庫中有2個表。我在兩個表中插入相同的值,唯一不同的是插入順序。在更改行的插入順序後SQL Server中的行總數不正確
的樣本值:
-422.82, 422.82, -407.78, 407.78
的ztFloat2
表的SUM
是錯誤的。
我檢查了兩張表的數據頁。所有的插槽值都是相同的。它是一個經典的浮點數據類型問題還是SQL Server BUG?
CREATE TABLE ztFloat1 ([Qty] [float] NOT NULL)
insert into ztFloat1 select -422.82
insert into ztFloat1 select 422.82
insert into ztFloat1 select -407.78
insert into ztFloat1 select 407.78
select SUM(Qty) from ztFloat1 -- **RESULT = 0**
CREATE TABLE ztFloat2([Qty] [float] NOT NULL)
insert into ztFloat2 select -422.82
insert into ztFloat2 select -407.78
insert into ztFloat2 select 422.82
insert into ztFloat2 select 407.78
select SUM(Qty) from ztFloat2 -- **RESULT =-1,13686837721616E-13**
注:問題
使用十進制數據類型來代替。 (你看到的是浮點行爲。) – jarlh
適合我在SQL Server,Postgres和Oracle中沒有問題。 –
對於表,有* no *固有的用戶可觀察的排序。短語「插入順序」沒有意義。表是一組*行*無序。 –