3

この SELECT ステートメントを実行すると問題が発生しました。

SELECT *
FROM Table1
ORDER BY column1, column2

算術オーバーフローに関するエラーが発生しました。どの列が問題であるか、つまりsomecolumn数値(10, 0)であることがわかりましたが、一部の行では10桁以上で構成されています.

列が最大10桁になるように十分な桁を削除するだけで、そのエラーでエラーが解決されますが、問題はそのような行が約100あることです。

質問: このような問題の原因と、それらの行を選択するための正しい SQL ステートメントを作成する方法を教えてください。

問題は最終的に列の値を切り捨てる何らかの方法かもしれないと私には思えます。これは単なる仮定です。最初の列は数値 (20, 0) で、10 桁または 11 桁の値で構成されている可能性がありますが、誰かがこの列を数値 (10, 0) に変更する必要があると判断すると、問題が発生します。これは単なる仮定です。

4

1 に答える 1

2

この列を単に ALTER しないのはなぜですか?
または、次のように変換することもできます。

SELECT CONVERT(bigint,(somecolumn))  
FROM Table1  
ORDER BY column1, column2 
于 2013-04-11T11:59:08.863 に答える