1

データベースをインポートしているときに、数字の一部を 1000 ではなく 1k、1000000 ではなく 1m の形式でインポートしてしまったことに気付きました。

私はこれを見ました:

UPDATE YourTable
    SET YourColumn = REPLACE(YourColumn, '%', '');

ただし、1250 の代わりに 1.25k を使用すると 1.25000 になるという問題が発生します。

これを修正する可能な方法は何でしょうか。

4

1 に答える 1

1

使用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 は数値ではなく文字列であると想定しています。

于 2012-09-11T06:54:16.067 に答える