У меня есть SQL запрос следующим образом:Использование ДЕЛУ в запросе SQL
SELECT *
FROM table1
INNER JOIN table2 ON table1.key = table2.key
INNER JOIN table3 ON table1.var = table3.var
INNER JOIN table4 ON table1.field = table4.field
, но я только хочу, чтобы включить Таблицу 3 присоединиться, если переменная имеет определенное значение (iMarket = 250 и выше)
Я пытаюсь получить такого рода условия работы:
SELECT *
FROM table1
INNER JOIN table2 ON table1.key = table2.key
CASE
WHEN iMarket > 250
THEN INNER JOIN table3 ON table1.var = table3.var
END
INNER JOIN table4 on table1.field = table4.field
это псевдо-код, но он приближается к тому, что я пытаюсь сделать. Ничего не работает. Есть ли более простой способ сделать это? Я хочу исключить это объединение, потому что он всегда терпит неудачу, если эта переменная ниже определенного значения. Спасибо вам всем!
Оператор CASE в SQL может возвращать только значение. Он не может направлять управление потоком. –
Фактически, 'CASE' в T-SQL является ** выражением ** - не является оператором - и выражение может быть оценено только одним (возможно, многими возможными) значениями - его нельзя использовать для условных объединений. .. –