自昨天以来,我的代码中出现错误,我不确定为什么! 我在Google上搜索了很多,发现了this Stack-Post。
我使用此功能按名称对用户进行排序并创建日期。 该功能已经运行了2年,现在我遇到了一个用户错误,我不知道发生了什么变化。 我尝试检查我的数据是否有损坏,但找不到任何错误。
在阅读完Stack-Post之后,我仍然不完全了解问题所在或项目中发生了什么变化。
SELECT
Number_1,
Number_2,
Number_1 + Number_2 AS Interim_Result,
iif(Interim_Result > 20, over 20, under 20) AS Result
FROM
NUMBERS
答案 0 :(得分:9)
comp = user1.getCreateDate().before(user2.getCreateDate()) ? -1 : 1;
在日期相等的情况下,此行永远不会返回零。这意味着它不是反对称的(即sgn(a.compareTo(b)) = -sgn(b.compareTo(a))
)。
确切的解决方法取决于返回的类getCreateDate()
,但是可能类似于:
comp = user1.getCreateDate().compareTo(user2.getCreateDate());
但是,构造兼容的比较器的更简单方法是:
Comparator.comparing(Users::getUsername).thenComparing(Users::getCreateDate)
或类似的