SQL Server nie wykonuje zwarcia (ani nie powinien).
Jeśli potrzebujesz, nie próbuj w pewnych okolicznościach musisz to wymusić w sposobie, w jaki piszesz zapytanie.
W przypadku tego zapytania najłatwiejszym rozwiązaniem byłoby użycie CASE
wyrażenie w WHERE
klauzula.
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)
Z drugiej strony, CASE
i zagnieżdżanie zapytań to jedyne dwa obsługiwane sposoby, o których mogę pomyśleć, aby wymusić kolejność oceny dla warunków zależnych w SQL.