期末金額我想發現,在999期末金額我至今是:SQL - 發現在999
select *
from bkpf_bseg_0010
where right(cast(dmbtr as int),3) = 999
但是當我運行的查詢我收到以下錯誤信息:
int類型,值算術溢出錯誤= 4302564925.000000
列dmbtr
是浮點。任何其他想法如何繞過這個問題?
期末金額我想發現,在999期末金額我至今是:SQL - 發現在999
select *
from bkpf_bseg_0010
where right(cast(dmbtr as int),3) = 999
但是當我運行的查詢我收到以下錯誤信息:
int類型,值算術溢出錯誤= 4302564925.000000
列dmbtr
是浮點。任何其他想法如何繞過這個問題?
將大數字投射到僅有有限範圍的int
時,會發生數字溢出。 bigint
應該就夠了。
where cast(dmbtr as bigint) % 1000 = 999
而且你還可以使用模獲得最後3位
select * from bkpf_bseg_0010 where right(cast(dmbtr as bigint),3) = 999
真正的問題是你的價值觀在列具有更大的尺寸在INT數據類型來處理。使用不同的數據類型來處理這些值而不是INT
right(cast(dmbtr as bigint),3) = 999
bigint工作。感謝您的快速回復! –