Обновить столбец на основе значений в столбце B - PullRequest
0 голосов
/ 27 апреля 2020

Допустим, у меня есть Table1 и Table2, как показано ниже:

Table1

Nmae  ColA ColB
---------------
Peter 25   
Jason 52   
Tom   74
Jim   65

Table2

Values Prize
-------------
25     ABC
50     ABC1
75     ABC2
100    ABC3

Теперь я хочу обновить ColB в Table1 на основе значений в ColA. например, если value >= 25 and < 50, то ABC. Если value >= 50 and < 75, то ABC1.

Желаемый результат:

Name ColA ColB
----------------
Peter 25   ABC
Jason 52   ABC1
Tom   76   ABC2
Jim   65   ABC1

Я попытался решить проблему, соединив две таблицы для обновления ColB, но застрял. Я знаю, что это легко сделать с помощью CASE WHEN. Тем не менее, я обеспокоен тем, что в будущем, если правила изменятся или что-то еще, я должен изменить код в нескольких SP.

1 Ответ

0 голосов
/ 27 апреля 2020

Вы можете легко сделать это ОБНОВЛЕНИЕ, используя подзапрос вместо CASE WHEN

update table1 set ColB = (select top 1 Prize 
                          from table2 
                          where Values <= ColA order by Values desc)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...