2010-12-10 7 views
0

Ich habe eine Prozedur, die eine Tabelle Benutzer lädt und dabei eine Verbindung zwischen Benutzern und ihren Managern macht. Ich habe die einfache Auswahl unten, um MaagerId für jeden Benutzer Datensatz herauszufinden. Ich sehe, es gibt einen Manager, der einem Benutzer zugewiesen werden sollte, aber der Benutzer erhält ein Leerzeichen und die Zuordnung von managerId fehlt.sql nicht gleich gleichen String-Vergleich richtig

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 

die userId ist ein selbst incrmenting Feld so, das gut funktioniert, und das MANAGERID Feld oben mit der Logik bevölkert. merke ich manchmal i leere MANAGERID Werte erhalten, wenn i CorpManagerDN Werte wie

CN = Tsahalis \, Peter NBKPVUD, OU = Pre-BAND, OU = Accounts, OU = BAND, DC = corp, DC = bankofamerica sehen siehe CORPDN, DC = com

und i-Wert des Manager wie

CN = Tsahalis \, Peter NBKPVUD, OU = Pre-BAND, OU = Accounts, OU = BAND, DC = Corp, DC = Bankofamerica, DC = com

aber die sql-Auswertung passt nicht zu ihnen?

+0

was SQL Server-Sortierungs – anivas

Antwort

1

Sie scheinen gleich mich

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