SQL Server tidak melakukan hubungan arus pendek (juga tidak seharusnya).
Jika Anda membutuhkannya untuk tidak mencoba sesuatu dalam keadaan tertentu, Anda perlu memaksakannya dengan cara Anda menulis kueri.
Untuk kueri ini, perbaikan termudah adalah menggunakan CASE
ekspresi di WHERE
. Anda klausa.
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)
Tidak langsung, CASE
dan query-nesting adalah dua cara yang didukung yang dapat saya pikirkan untuk memaksa urutan evaluasi untuk kondisi dependen dalam SQL.