SQL サーバーで次のクエリを実行しようとしています。
declare @queryWord as nvarchar(20) = 'asdas'
SELECT * FROM TABLE_1
WHERE (ISDATE(@queryWord) = 1)
AND TABLE_1.INIT_DATE = CONVERT(Date, @queryWord)
'asdas'
に変換できないため、明らかにエラーが発生しますDate
。しかし、私は別の動作を期待していました。つまり、 is であるためISDATE(@queryWord) = 1
、false
SQL が 2 番目の条件をチェックしないことを期待していましたが、どうやらチェックされているようです。
このクエリを実行する方法が他にもいくつかあることは知っていますが、これは私の質問ではありません。最初の条件が満たされていない場合、2番目の条件をチェックしない方法があるのだろうか。SQLはすでにこれを行っていると思っていたので、興味があります。