Я застрял в ситуации, когда мне нужно выполнить условное соединение. Краткое резюме может быть, у меня есть 2 таблицы TableA
и TableB
.Отменить условие соединения на основе значения столбца
TableA
имеет столбцы A1
, A2
, A3
, A4
, A5
, Condition1
, Condition2
аналогично TableB
имеет столбцы B1
, B2
, Condition1
, Condition2
И мне нужно, чтобы выполнить объединение на TableA.Condition1 = TableB.Condition1
и состояния присоединиться на TableA.Condition2 = TableB.Condition2
, состояние TableA.Condition2
не должно быть нулевым для любой записи первого соединения.
Другими словами, если какая-либо запись с TableA.Condition1 = TableB.Condition1
согласована и в то же время TableA.Condition2
не является ни для кого из них, а затем выполняет второе соединение, в противном случае не выполняется второе соединение.
Запрос может быть как
SELECT A.* FROM TableA A
INNER JOIN TableB B
ON A.Condition1 = B.Condition1 -- This must be perform
AND WHEN A.Condition2 IS NULL THEN
1 = 1 -- Assuming no join here
ELSE
A.Condition2 = B.Condition2 -- perform join
END
Ваша обфускация a ctual details, вероятно, усложняет любые реальные решения. Если вы можете предоставить не конфиденциальную/личную информацию, и фактическая контекстная таблица/столбцы определенно помогут. – DRapp