我正在经历一个很长的存储过程,我发现这个,作为一个很长的查询的一部分:
SELECT ....
FROM ---
WHERE condition
AND CHECKSUM(r.roomprovider_id) <> CHECKSUM(ISNULL(br.roomprovider_id, r.roomprovider_id))
roomprovider_id
是一个INT
值
第一次看到它时,我完全不知道这样做的目的是什么。我进行了一些搜索,阅读了技术页面上 CHECKSUM 的定义以及更多来源,但无法理解在CHECKSUM
此处使用的意义。
我不是在寻找能准确解释这种情况的答案(如果可能的话,甚至更好),但我会对解释这种使用方式的意义的答案感到满意checksum
。
没有人能真正告诉你为什么这个人用
WHERE
这种方式编码子句。我可以告诉你,我想不出 form 比以下更好的原因:(虽然我可以解释代码当前是如何编写的,但我不确定预期/预期的行为 - 当右侧是时应该包含还是排除一行
NULL
?)我对他们动机的猜测包括:
CHECKSUM()
是他们刚刚学到的一个闪亮的新功能,他们只需要在某个地方实现它CHECKSUM()
与其他方法相比,这种方法不太容易因碰撞而出现不准确,或者 - 只需一个输入 - 它可以用于任何目的