我有一个简单的 SQL 查询,其中在两个表之间进行比较以查找不匹配的值。昨天,我们发现了一个问题,其中一个字段为空而另一个字段不为空,但未检测到不匹配。据我所知,逻辑一直有效,直到昨天。下面是 SQL 的逻辑:
CREATE TABLE Table1
(UserID INT,PlayDate DATETIME)
CREATE TABLE Table2
(UserID INT,PlayDate DATETIME)
INSERT INTO Table1 (UserID)
SELECT 5346
INSERT INTO Table2 (UserID,PlayDate)
SELECT 5346,'2012-11-01'
SELECT a.UserID
FROM Table1 a
INNER JOIN
Table2 b
ON a.UserID = b.UserID
WHERE a.PlayDate <> b.PlayDate
即使 PlayDate 值不同,也不会返回任何值。
我现在更新了 WHERE 阅读:
WHERE ISNULL(a.PlayDate,'') <> ISNULL(b.PlayDate,'')
SQL 中是否有某个设置可能已被更改以导致原始代码不再获取字段的差异?
谢谢