当我在select语句中进行一些乘法时,我发现SQL Server抛出算术溢出错误的特殊情况。
当我在W3Schools SQL窗口中执行相同操作时,它起作用了。以下是我的查询在哪里引发错误。我尝试了多种排列组合,但在大多数情况下
失败SELECT 20000000 * 130
信息8115,第16级,州2,第4行
将表达式转换为数据类型int的算术溢出错误。
消息窗口:
输出窗口:
版本信息:
答案 0 :(得分:0)
类型为int还不够,请尝试使用float。
SELECT cast(20000000 as float) * cast(130 as float)
结果是优先级较高的参数的数据类型。但是,如果您有2个int,则不进行强制转换就无法获得浮动 https://docs.microsoft.com/it-it/sql/t-sql/language-elements/multiply-transact-sql?view=sql-server-2017
我用过float,但是bigint不变
答案 1 :(得分:0)
SELECT CAST(20000000 AS BIGINT)* 130