SELECT * FROM Table给出了有关算术溢出的错误

时间:2013-04-10 13:36:41

标签: sql sql-server-2000

执行此SELECT语句时遇到问题:

SELECT *
FROM Table1
ORDER BY column1, column2

我收到有关算术溢出的错误。我发现哪个列是问题,即somecolumn是数字(10,0),但在某些行中包含10个以上的数字,并且不要问我是怎么发生的,因为我不知道: )

我只是删除了足够的数字,使列有最多10位数,这就解决了该错误的错误,但问题是大约有100行。

问题是:什么可能导致这样的问题,以及如何编写正确的SQL语句来选择那些行?

在我看来,问题最终可能会在列中截断值。这只是假设:可能列首先是数字(20,0),并且包含10或11位数的值,但是有人决定必须将此列更改为数字(10,0)然后出现问题。这只是一些假设。

1 个答案:

答案 0 :(得分:2)

为什么不改变这一栏呢? 或者您也可以尝试将其转换为:

SELECT CONVERT(bigint,(somecolumn))  
FROM Table1  
ORDER BY column1, column2