データベースをインポートしているときに、数字の一部を 1000 ではなく 1k、1000000 ではなく 1m の形式でインポートしてしまったことに気付きました。
私はこれを見ました:
UPDATE YourTable
SET YourColumn = REPLACE(YourColumn, '%', '');
ただし、1250 の代わりに 1.25k を使用すると 1.25000 になるという問題が発生します。
これを修正する可能な方法は何でしょうか。
使用CASE
ステートメント:
update yourtable
set yourcolumn =
case when length(yourcolumn) <>
length(replace(yourcolumn, 'k', ''))
then
replace(yourcolumn, 'k', '') * 1000
else when length(yourcolumn) <>
length(replace(yourcolumn, 'm', ''))
then
replace(yourcolumn, 'm', '') * 1000000
else
yourcolumn
end
編集: yourcolumn は数値ではなく文字列であると想定しています。