轉換數據發生
消息 8115,級別 16,狀態 6,第 1 行
將 nvarchar 轉換為數據類型 numeric 時出現算術溢出錯誤。
nvarchar 是帶很長小數,直接轉換成decimal 失敗
解決方案:
先轉換成float 再轉換成decimal 或者int(去掉小數位)
CAST(CAST(TRANS_CHARGE AS FLOAT) AS INT)
Why float?
- no idea of precision or scale across all rows: float is the lesser evil perhaps
- empty string will cast to zero for float, fails on decimal
- float accepts stuff like 5E-02, fails on decimal
參考: