数値である Varchar 値を含むテーブルがあり、それらを 10 進数値にしたいと考えています。データ型 varchar を数値に変換中にエラーが発生しましたというエラーが表示されます。私はもう試した:
SELECT ROUND(CAST(MYCOLUMN AS decimal(10, 2)), 2)
FROM TABLE
と
ALTER TABLE MYTABLE
ALTER COLUMN MYCOLUMN DECIMAL(10,2)
と
ALTER TABLE MYTABLE
MODIFY COLUMN ACQ_FIELD_8 DECIMAL(10,2)
と
SELECT ISNULL(CAST(NULLIF(MYCOLUMN, 'NULL') AS NUMERIC(10,2)), 0)
FROM MYTABLE
同じエラーが発生し続けます。以下を使用して、データを調べて特殊文字または文字を探しました。
SELECT MYCOLUMN FROM MYTABLE
WHERE MYCOLUMN LIKE '%[a-zA-Z]%'
or MYCOLUMN LIKE '%[(]%' --etc for each character.
私が見つけた唯一のことは、何らかの理由ですべての値に aが含ま'^'
れていることですが、 を何も置き換えて'6'
も、値を 10 進数または数値に変換することはできません。列を番号 (< 0.00) で並べ替えてみると、 が得られArithmetic overflow error converting varchar to data type numeric
ます。
誰が何をすべきか知っていますか?