У меня есть особая проблема, когда JOIN ON может основываться на одном из двух операторов:
LEFT JOIN acc_seminar.t_Seminar_Gebühr semg ON
CASE
WHEN @Bool = 1
THEN ss1.TNOrder = semg.SemG_TN OR (ss1.TNOrder > @MaxTN AND semg.SemG_TN = @MaxTN)
ELSE
semg.SemG_TN = 1
END
Как вы можете видеть, если переменная имеет значение, равное 1, она должна оставить соединение наодно утверждение или соединение с другим, если значение переменной не равно 1.
Насколько мне подсказывает Googling, что-то подобное невозможно в SQL, поскольку CASE возвращает значение, а не утверждение. Как я могу изменить это, чтобы заставить его логически работать, как показано выше?