Wenn Else-Anweisung innerhalb einer inneren Verknüpfung
Ich habe eine Tabelle Aufträge mit einer Spalte StartDate, ist oft null. Wenn es nicht null das ist, was ich will inner join mit einer Tabelle Quartalen auf, sonst will ich inner join auf einige andere Bedingungen. Dies ist eine Art, was ich will:
INNER JOIN Quarters q
ON (IF j.StartDate IS NOT NULL (j. StartDate BETWEEN GETDATE() and q.EndDate)
ELSE **Some other condition**)
Den Fehler, der kommt, wenn diese ausgeführt ist, dass es falsche syntax bei das Schlüsselwort 'IF'
Weiß jemand die korrekte syntax dafür?
Dank im Voraus für Eure Hilfe!
InformationsquelleAutor Cat | 2011-06-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor Dark Falcon
Der einfachste Weg, dies zu behandeln, ist einfach zu behandeln, als eine logische operation:
H.: ich hoffe, der erste Teil der "andere Zustand" wäre
j.start_date IS NULL and
. In der Regel, wenn es um SQL, würde ich eher zur Verwendung der logischen Operatoren alsCASE
wo Sie sind gleichwertig.Sicher, mein Punkt ist nur, dass diese nicht gleichwertig zu sein
IF..ELSE
. Die SONST in seinem Fall (wenn es syntaktisch erlaubt) würde automatisch entgegen StartDate IST NICHT NULL. Wenn Sie es ändern, um ein ODER das nicht für wahr halten, so dass ich sicherstellen wollte, das war klar, jeder, der Lesen kann.InformationsquelleAutor Allan
Versuchen
FALL, WENN j.StartDate IS NULL DANN Wert SONST some_other_value ENDE
die syntax ist
Hinweis: Sonst kann Sie weggelassen werden.
siehe auch die links
http://www.craigsmullins.com/ssu_0899.htm
http://msdn.microsoft.com/en-us/library/ms181765.aspx
InformationsquelleAutor niktrs