В Oracle PL / SQL можно ли поменять значение одного и того же столбца двух разных строк в таблице, когда остальные значения столбцов равны? - PullRequest
0 голосов
/ 29 марта 2019

В принципе, я ошибся при назначении значений некоторым строкам. Две строки имеют одинаковые значения во всех столбцах, кроме одного, и в этом столбце значения следует поменять местами. Как я могу подойти к вопросу?

Я уже пробовал с некоторым кодом, но он работает только тогда, когда одно из других значений отличается, чтобы использовать его в качестве ссылки. Но когда все остальные значения одинаковы, это не сработает.

В столбце 'bar' я просто хотел бы поменять значения из обеих строк.

foo bar foo2
1 2 4
1 3 4

1 Ответ

0 голосов
/ 29 марта 2019

Вы можете сделать это с помощью оператора CASE:

update the_table
   set the_column = case pk_column
                      when 1 then (select the_column from the_table where pk_column = 2)
                      when 2 then (select the_column from the_table where pk_column = 1)
                    end
where pk_column in (1,2);

Выше предполагается, что pk_column определено как уникальное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...