Я пытаюсь сравнить 2 уникальных значения идентификатора, как показано в следующем запросе. Однако, если одно значение равно null, а одно значение - нет, результат будет «одинаковым» ?! Я уверен, что оба значения являются уникальными идентификаторами, и также попытались сделать оба значения уникальным идентификатором, чтобы сделать абсолютно уверенным. Сравнение двух значений происходит из разных баз данных с разными сопоставлениями. Сопоставлена ли какая-либо разница? Любые идеи были бы хорошы.TSQL Сравнение двух значений uniqueidentifier не работает должным образом
select [result] = case when
[target].StaffID <> [source].StaffID then 'different'
else 'same'
end
from
...
Если я заменю <> с = запрос, то считает, что 2 нулевые значения не совпадают.
EDIT:
Я использовал:
declare @empty uniqueidentifier
set @empty = '00000000-0000-0000-0000-000000000000'
... isnull(somevalue, @emtpy) <> isnull(othervalue, @empty) ...
Если тип StaffId является 'UniqueIdentifier', вы не можете использовать' ISNULL' с пустой строкой - вы получите ошибку преобразования типа данных. – user2480596