我試圖比較2 uniqueidentifier值,如下面的查詢中所示。但是,如果一個值爲空,而一個值不是,則結果是'相同'?!我確定這兩個值都是唯一標識符,並且也嘗試將這兩個值都賦值給uniqueidentifier以絕對確定。所比較的兩個值來自不同數據庫,具有不同的排序規則。排序規則有什麼區別?任何想法,將不勝感激。TSQL比較2 uniqueidentifier值不按預期方式工作
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) ...
如果StaffId的類型是'UniqueIdentifier',那麼不能使用帶空字符串的'ISNULL' - 你會得到一個數據類型轉換錯誤。 – user2480596