如何一次更改一列的大量数据?

Sal*_*leh 0 database types sql-server-2008

我有一个旧数据库,其中一个表包含许多列,其中一个列名为oper,其类型为varchar,此表中有180,000多行,此列的值可以是以下值之一:

first
second
third
fourth
fifth
Run Code Online (Sandbox Code Playgroud)

现在我更新了我的表并使数据类型为int.所以,如果我想插入旧数据我不能因为类型之间的不同(int - string).

我需要一些方法来循环抛出表行并检查oper的值

如果old值等于"first",则复制该行并首先更改为1并将此行放入新表中

如果旧值等于"秒",则复制该行并首先更改为2并将此行放入新表中

等等 .....

有什么方法可以做到吗?

p.c*_*ell 5

听起来好像要从旧表中插入到新表中.

INSERT INTO NewTable (Col1, Col2, Col3, Oper) --Oper is an int, right?

    SELECT Col1, Col2, Col3, 
           CASE Oper
              WHEN  'first' THEN 1
              WHEN  'second' THEN 2
              WHEN 'third' THEN 3
              WHEN 'fourth' THEN 4
              WHEN 'fifth' THEN 5
           ELSE -1 END
    FROM OldTable
Run Code Online (Sandbox Code Playgroud)