У меня есть список обновлений sql, как показано ниже:
UPDATE variable SET type='aa1' WHERE type='aaa';
UPDATE variable SET type='x1' WHERE type='bbb';
UPDATE variable SET type='da1' WHERE type='ccc';
UPDATE variable SET type='ac1' WHERE type='ddd';
-- more update sql
Так как есть много sqls, но они выглядят одинаково, мне интересно, можем ли мы объединить его в один sql, например ниже:
UPDATE variable SET type=? WHERE type=?;
Я знаю, что мы можем использовать CASE WHEN
, но решение кажется уродливым, есть ли более элегантный способ сделать это? (Может быть, отображение значения ключа?)
-- I do not want to do it like this
UPDATE variable
SET type=
(
CASE WHEN type='aa1' THEN 'aaa'
CASE WHEN type='x1' THEN 'bbb'
END
)
WHERE type IN('aa1','x1');
Также я знаю, что мы можемиспользуйте для этого какой-нибудь язык программирования, например jdbc
, но я хочу выяснить, существует ли чисто SQL-решение
Заранее спасибо!