SQL соединяет таблицы на основе условий if if if - PullRequest
0 голосов
/ 17 октября 2018

Впервые в работе с SQL, поэтому, пожалуйста, извините.

Я хочу создать запрос SQL, который соединяет столбец с таблицей A из таблицы B на основе следующей логики сопоставления:

B.Source = ‘SOURCE1’ and A.NameCode= B.Code

Если приведенное выше возвращает NULL, то я бы хотел сопоставить:

B.Source <> ‘SOURCE1’ and A.UEN = B.UEN**

Любая помощь о том, как структурировать это?В настоящее время у меня есть запрос на объединение всех выборок, который может получить значения на основе вышеуказанных условий.Должен ли я использовать If / или / case_when в процессе соединения?

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

Каквыполнить ЛЕВОЕ СОЕДИНЕНИЕ в SQL Server между двумя операторами SELECT?

Использование IS NULL или NOT NULL в условиях соединения - Теоретический вопрос

Но я былне могу ничего придумать :( Спасибо большое!

1 Ответ

0 голосов
/ 17 октября 2018

Попробуйте что-то вроде этого:

SELECT * 
FROM A
JOIN B ON (
    (B.Source = 'Source1' AND A.NameCode = B.Code) OR
    (B.Source <> 'Source1' AND A.UEN = B.[UEN**]) --Not sure what the ** is?  Part of the field name?
)
...