执行此SELECT语句时遇到问题:
SELECT *
FROM Table1
ORDER BY column1, column2
我收到有关算术溢出的错误。我发现哪个列是问题,即somecolumn
是数字(10,0),但在某些行中包含10个以上的数字,并且不要问我是怎么发生的,因为我不知道: )
我只是删除了足够的数字,使列有最多10位数,这就解决了该错误的错误,但问题是大约有100行。
问题是:什么可能导致这样的问题,以及如何编写正确的SQL语句来选择那些行?
在我看来,问题最终可能会在列中截断值。这只是假设:可能列首先是数字(20,0),并且包含10或11位数的值,但是有人决定必须将此列更改为数字(10,0)然后出现问题。这只是一些假设。
答案 0 :(得分:2)
为什么不改变这一栏呢? 或者您也可以尝试将其转换为:
SELECT CONVERT(bigint,(somecolumn))
FROM Table1
ORDER BY column1, column2