2015-07-21 29 views
1

期末金額我想發現,在999期末金額我至今是:SQL - 發現在999

select * 
from bkpf_bseg_0010 
where right(cast(dmbtr as int),3) = 999 

但是當我運行的查詢我收到以下錯誤信息:

int類型,值

算術溢出錯誤= 4302564925.000000

dmbtr是浮點。任何其他想法如何繞過這個問題?

回答

15

將大數字投射到僅有有限範圍的int時,會發生數字溢出。 bigint應該就夠了。

where cast(dmbtr as bigint) % 1000 = 999 

而且你還可以使用模獲得最後3位

+0

bigint工作。感謝您的快速回復! –

1
select * from bkpf_bseg_0010 where right(cast(dmbtr as bigint),3) = 999 
0

真正的問題是你的價值觀在列具有更大的尺寸在INT數據類型來處理。使用不同的數據類型來處理這些值而不是INT

right(cast(dmbtr as bigint),3) = 999