1

在导入我的数据库时,我意识到我犯了一个错误,并以 1k 而不是 1000 和 1m 而不是 1000000 的格式导入了一些数字。

我确实看到了这个:

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

但是,这会产生一个问题,看看如何使用 1.25k 而不是 1250 我会得到 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 回答