我正在尝试比较 2 个 uniqueidentifier 值,如下面的查询所示。但是,如果一个值为空而一个值不是,结果是“相同的”?!我确信这两个值都是唯一标识符,并且还尝试将这两个值都转换为唯一标识符以确保绝对确定。正在比较的 2 个值来自具有不同排序规则的不同数据库。排序有什么区别吗?任何想法,将不胜感激。
select [result] = case when
[target].StaffID <> [source].StaffID then 'different'
else 'same'
end
from
...
如果我将 <> 替换为 =,则查询会认为 2 个空值不匹配。
编辑:
我用了:
declare @empty uniqueidentifier
set @empty = '00000000-0000-0000-0000-000000000000'
... isnull(somevalue, @emtpy) <> isnull(othervalue, @empty) ...