varcharからfloatへ
SQLServerです。
csvからimportしたデータなのですが、varcharからfloatに変換して、100で割った後、再びvarcharに直します。
その他の処理もあって、次のようなSQLを書きました。
Update TempTbl Set Data005=CONVERT(varchar,CASE flag005 WHEN '0' THEN '-' WHEN '4' THEN CONVERT(float,Data005)/100 ELSE Data005 END);
するとvarcharからfloatの変換でエラーが起こります。
試行錯誤の結果、次のようにするとエラーが起こらないことがわかりました。
Update TempTbl Set Data005=(CASE flag005 WHEN '0' THEN '-' WHEN '4' THEN CONVERT(varchar,CONVERT(float,Data005)/100) ELSE Data005 END);
エラーが起こっていた明確な理由があるはずなのですが、私の中では未だに謎のままです。


コメントする