Vlookup в sql, перенести значения в другую таблицу - PullRequest
0 голосов
/ 17 июня 2020

добрый день, у меня есть T1 со столбцами «Customer_id, kind, class» и T2 «Customer_Id, class». Мне нужно выполнить поиск в sql. Если значение в столбце «t1.kind» равно 3, тогда установите значение столбца «t1.class» «smt». Если значение «t1.customer_id» находится в «t2.customer_id», то перенесите значение t2.class в "t1.class" Иначе установите значение "t1.class" равным 3. Как я могу сделать это обновление столбца в таблице t1. Спасибо.

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете использовать выражение CASE в операторе UPDATE:

update t1
set class = case
  when kind = 3 then 'smt'
  else coalesce((select max(t2.class) from t2 where t2.customer_id = t1.customer_id), 3) 
end

Я использую max(t2.class) вместо t2.class на тот случай, если подзапрос возвращает более 1 строки.

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