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

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

然而,如果用1.25k而不是1250,我将得到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

编辑:我假设您的列是字符列,而不是数字列。

09-12 18:42