Как я могу изменить много данных для одного столбца одновременно? - PullRequest
0 голосов
/ 25 февраля 2011

У меня есть старая база данных, одна из ее таблиц содержит много столбцов, а один из ее столбцов называется oper , а ее тип - varchar, и в этой таблице более 180 000 строк и значение для этого столбца может быть одним из них:

first
second
third
fourth
fifth

Теперь я обновил свою таблицу и сделал тип данных int. Поэтому, если я хочу вставить старые данные, я не могу, потому что между типами разные (int - string).

Мне нужен какой-то способ зацикливания строк таблицы бросков и проверки значения для oper

если старое значение равно «first», скопируйте строку и измените сначала на 1 и поместите эту строку в новую таблицу

если старое значение равно "second", скопируйте строку и измените сначала на 2 и поместите эту строку в новую таблицу

и так далее .....

Есть ли способ, которым я могу это сделать?

1 Ответ

5 голосов
/ 25 февраля 2011

Звучит так, как будто вы хотите вставить новую таблицу со старой таблицы.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...