最近我正在玩SQL Server數據類型,並將大量數據放入表中,並嘗試用Varchar和Numeric數據計算性能。但是,我得到了一些錯誤,這是我不認爲不應該,但它是。我的問題是如下:具有Int和Decimal轉換功能的Sql Server SUM函數
我有一個表:
create table sa(f1 varchar(100))
我有一個存儲過程,而插入100000個數據到表:
create proc sad
as
begin
declare @i int=0
while @i<100000
begin
insert into sa values(@i)
set @[email protected]+1
end
end
exec sad
而且我已經測試了以下內容:
select CONVERT(int,f1) from sa //Works Fine, i tested after the Problem
select sum(convert(int,f1)) from sa //Didn't Worked, So i tested above and Below
select sum(convert(decimal(18,2),f1)) from sa //And, it again works fine
但是,當我總結轉換F1到INT,它顯示我一個錯誤。
但是,當我只選擇轉換爲Int罰款。
而且,當我總結轉換F1到十進制它工作正常。
什麼是SUM函數的數據類型?
在上面的數據它適用於十進制,但不是詮釋?
爲什麼?
即時得到以下錯誤
算術溢出錯誤將表達式轉換爲數據類型int。
請複製並粘貼您收到的錯誤... –
對不起,我編輯了我的問題,並收到了錯誤 –
我試圖找出性能問題,同時使用Varchar和數字數據類型 –