Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie man eine SQL Where-Klausel kurzschließt

SQL Server führt keine Kurzschlüsse durch (und sollte es auch nicht).

Wenn Sie es brauchen, versuchen Sie es nicht Unter Umständen müssen Sie dies in der Art und Weise erzwingen, wie Sie Ihre Abfrage schreiben.

Für diese Abfrage wäre die einfachste Lösung die Verwendung eines CASE Ausdruck in Ihrem WHERE Klausel.

declare @queryWord as nvarchar(20) = 'asdas'

SELECT  * FROM TABLE_1 
WHERE TABLE_1.INIT_DATE = (CASE WHEN ISDATE(@queryWord) = 1 
                                THEN CONVERT(Date, @queryWord)
                           ELSE NULL  END)

Nebenbei, CASE und Abfrageverschachtelung sind die einzigen zwei unterstützten Möglichkeiten, die mir einfallen, um eine Auswertungsreihenfolge für abhängige Bedingungen in SQL zu erzwingen.