私はしばしばヌルである列StartDateを持つテーブル・ジョブを持っています。それがヌルでない場合、これは私がテーブルクォーターと内部結合することです、そうでなければ私はいくつかの他の条件で内部結合したいです。これは私が欲しいものの一種である:これが実行されたときに起動します内部結合内のElseステートメントがある場合
INNER JOIN Quarters q
ON (IF j.StartDate IS NOT NULL (j. StartDate BETWEEN GETDATE() and q.EndDate)
ELSE **Some other condition**)
エラーが間違った構文がキーワードの近くにあるということです
「場合は、」誰もがこのための正しい構文を知っていますか?
ご協力いただきありがとうございます。
場合、これは誤った結果を返すことができますStartDateはNULLではありませんが、「その他の条件」が満たされています。 –
@Tom H .:うまくいけば、 "その他の条件"の最初の部分は 'j.start_date IS NULL 'です。一般的に、SQLに関して言えば、論理演算子はCASEよりもむしろ同等です。 – Allan
確かに、私の主張は、彼のIF..ELSEと同じではないということだけです。彼の場合のELSE(構文上許されている場合)は自動的にStartDate IS NOT NULLを除外します。あなたがそれを真実でないORに変更したとき、私はこれを読んでいる誰にとっても明白であることを確認したかったのです。 –