求SQL查询算术溢出解决方法

loworth 2008-01-30 12:32:56
[CODE=SQL]
SELECT 99999*99999
[/CODE]
服务器: 消息 8115,级别 16,状态 2,行 1
将 expression 转换为数据类型 int 时发生算术溢出错误。




求如何解决
或者如何使得查出来的编程BIGINT 或float、decimal之类的数据
...全文
621 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
loworth 2008-01-30
  • 打赏
  • 举报
回复

[CODE=SQL]
DECLARE @bigint BIGINT
SELECT @bigint*99999*99999[/CODE]

有没有更简单点的办法
dawugui 2008-01-30
  • 打赏
  • 举报
回复
SELECT cast(99999 as bigint)*cast(99999 as bigint)


--------------------
9999800001

(所影响的行数为 1 行)
dawugui 2008-01-30
  • 打赏
  • 举报
回复
SELECT cast(99999*99999 bigint)
wzy_love_sly 2008-01-30
  • 打赏
  • 举报
回复
SELECT cast(99999 as decimal)*99999
pt1314917 2008-01-30
  • 打赏
  • 举报
回复

SELECT 99999.0*99999
中国风 2008-01-30
  • 打赏
  • 举报
回复
SET ARITHABORT
在查询执行过程中发生溢出或被零除错误时终止查询。

语法
SET ARITHABORT { ON | OFF }

注释
如果 SET ARITHABORT 为 ON,则这些错误情况将导致查询或批处理终止。如果在事务内发生错误,则回滚事务。如果 SET ARITHABORT 为 OFF 并且发生了这些错误之一,则显示一条警告消息,并给算术运算的结果赋以空值。
中国风 2008-01-30
  • 打赏
  • 举报
回复
SELECT cast (99999 as bigint)*cast(99999 as bigint )
中国风 2008-01-30
  • 打赏
  • 举报
回复
SELECT cast (99999*99999 as bigint)--转换

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧