Мне нравится идея отображения CTE (@cyberkiwi), но не настолько, как собственный код старого стиля (а new
и old
- зарезервированные слова).
Вот переписать:
WITH Map (old_field2, new_field1)
AS
(
SELECT old_field2, new_field1
FROM (
VALUES ('vl1', '01'),
('vl2', '02'),
('vl3', '03')
) AS Map (old_field2, new_field1)
)
MERGE INTO Table1
USING Map AS source
ON Table1.Field2 LIKE source.old_field2 + '%'
WHEN MATCHED THEN
UPDATE
SET Field1 = source.new_field1;