Присоединяйтесь к 2 различным условиям на основе выражения CASE - PullRequest
1 голос
/ 02 апреля 2020

Я хочу написать запрос на обновление, который объединяет 2 таблицы в зависимости от условий Case

Update Table1
Set ID = Case when T1.value1 < 0
          then T2.ID ------Join on value1 between T2.valueTo and T2.ValueFrom
               when T1.value2 > 0
          then T2.ID -------Join on value2 between T2.valueTo and T2.ValueFrom
 from Table1
 Join Table2 t2 on value1 between T2.valueTo and T2.ValueFrom OR value2 between T2.valueTo and T2.ValueFrom

Приведенный выше запрос не работает. Есть ли способ, которым я могу написать, какое соединение должно работать на основе выражения case.

1 Ответ

1 голос
/ 02 апреля 2020

Вы можете использовать два соединения, по одному для каждого условия:

Update Table1
Set ID = Case when T1.value1 < 0
          then T2.ID ------Join on value1 between T2.valueTo and T2.ValueFrom
               when T1.value2 > 0
          then T3.ID -------Join on value2 between T2.valueTo and T2.ValueFrom
 from Table1
 Join Table2 t2 on value1 between T2.valueTo and T2.ValueFrom
 Join Table2 t2 on value2 between T3.valueTo and T3.ValueFrom
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...