我正在尝试在 SQL Server 中执行以下查询:
declare @queryWord as nvarchar(20) = 'asdas'
SELECT * FROM TABLE_1
WHERE (ISDATE(@queryWord) = 1)
AND TABLE_1.INIT_DATE = CONVERT(Date, @queryWord)
这显然会导致错误,因为'asdas'
无法转换为Date
. 虽然,我期待不同的行为。也就是说,因为ISDATE(@queryWord) = 1
is false
,我期望 SQL不检查第二个条件,但显然,它确实如此。
我知道还有其他一些方法可以执行此查询,但这不是我的问题。我想知道是否有某种方法可以不检查第二个条件是第一个不满足。我很好奇,因为我认为 SQL 已经这样做了。