2010-12-10 10 views
0

У меня есть proc, который загружает таблицу пользователей и при этом создает связь между пользователями и их менеджерами. У меня есть простой выбор ниже, чтобы определить maangerId для каждой пользовательской записи. я вижу, что есть менеджер, который должен быть назначен пользователю, но пользователь получает пробел и отсутствует назначение managerId.sql не оценивает правильное сравнение равных строк

DECLARE @managerId INT  
SET @managerId = NULL  

IF @CorpManagerDN IS NOT NULL  
BEGIN  

IF EXISTS (SELECT 69 FROM Employees WITH(NOLOCK) WHERE CorpManagerDN = @CorpManagerDN)  
BEGIN  
    SELECT @managerId = EmployeeId FROM Employees WHERE CorpDN = @CorpManagerDN 
END  
END 

идента является полем incrmenting самостоятельно, так что работает хорошо, а ManagerID поле заполняется выше логики. я замечаю иногда я получаю пустые значения ManagerID, когда я вижу значения CorpManagerDN как

CN = Tsahalis \, Питер NBKPVUD, OU = Pre-ЛЕНТА, OU = Accounts, OU = ЛЕНТА, DC = АМФ, DC = bankofamerica , DC = ком

и я вижу значение CORPDN менеджера как

CN = Tsahalis \, Питер NBKPVUD, OU = Pre-BAND, OU = Accounts, OU = ДИАПАЗОН, DC = corp, DC = bankofamerica, DC = com

, но оценка sql не соответствует им?

+0

, Что ваш SQL Server сортировки – anivas

ответ

1

Они кажутся равными мне

select 
case when 
    'CN=Tsahalis\, Peter NBKPVUD,OU=Pre-BAND,OU=Accounts,OU=BAND,DC=corp,DC=bankofamerica,DC=com' 
     = 'CN=Tsahalis\, Peter NBKPVUD,OU=Pre-BAND,OU=Accounts,OU=BAND,DC=corp,DC=bankofamerica,DC=com' 
    THEN 1 
    else 0 
END 
Смежные вопросы