Как написать это условие T-SQL, ГДЕ? - PullRequest
0 голосов
/ 16 ноября 2009

У меня есть две таблицы:

TableA
    Col1
    Col2
TableB
    Col3
    Col4

Я хочу объединить их:

SELECT * from TableA join TableB ON (...)

Теперь вместо ... мне нужно написать выражение, которое оценивается как:

  1. Если Col3 не равно нулю, тогда true, если Col1 == Col3; в противном случае
  2. Если Col3 равен нулю, тогда true, если Col2 == Col4

Какой самый элегантный способ сделать это?

Ответы [ 2 ]

4 голосов
/ 16 ноября 2009
ON (Col1=Col3 OR (Col3 IS NULL AND Col2=Col4))

должен сделать трюк (если Col3 равен нулю, Col1 = Col3 не может вычислить значение TRUE)

0 голосов
/ 16 ноября 2009

Попробуйте это:

SELECT * 
FROM TableA 
JOIN TableB 
   ON Col1 = Col3
      OR (Col3 IS NULL AND Col2 = Col4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...