我有一个表作业,其StartDate列通常为null。如果它不为null,那么这就是我想要与表格四分之一的内部联接,否则我想在其他条件下进行内部联接。这就是我想要的:
INNER JOIN Quarters q
ON (IF j.StartDate IS NOT NULL (j. StartDate BETWEEN GETDATE() and q.EndDate)
ELSE **Some other condition**)
运行此错误时出现的错误是关键字“IF”附近的语法不正确
有没有人知道这个的正确语法?
提前感谢您的帮助!
答案 0 :(得分:9)
INNER JOIN Quarters q ON
(j.StartDate IS NOT NULL AND j. StartDate BETWEEN GETDATE() and q.EndDate)
OR
(j.StartDate IS NULL AND **Some other condition**)
答案 1 :(得分:1)
尝试
当j.StartDate为空时的情况,那么某些值ELSE some_other_value结束
语法是
CASE WHEN some_boolean_expression THEN some_value_column_or_expression
WHEN some_boolean_expression THEN some_value_column_or_expression
... (repeat when as many times you need it)
ELSE some_value_column_or_expression
END
注意:可以省略其他。
另见链接
答案 2 :(得分:1)
处理此问题的最简单方法就是将其视为逻辑操作:
ON (j.StartDate IS NOT NULL
and j. StartDate BETWEEN GETDATE() and q.EndDate)
OR (some other condition)