为简洁起见,我省略了实际的选择字段,以下查询有效:
Select * FROM my_db WHERE CONVERT(Termination_Date, SQL_VARCHAR) IS NULL OR (Rehire_Date > Termination_Date)";
这工作正常。
这实际上使 JVM 崩溃:
Select * FROM my_db WHERE CONVERT(Termination_Date, SQL_VARCHAR) IS NULL OR (Rehire_Date > Termination_Date AND CONVERT(Termination_Date, SQL_VARCHAR) IS NOT NULL)";
我意识到第二个查询是错误的,但我运行了它,它使 JVM 崩溃而不是 SQL 异常。这是每次都可以重复的。为什么?