sql没有正确评估相等的字符串比较

时间:2010-12-10 21:27:25

标签: sql sql-server-2005

我有一个加载用户表的proc,这样做可以在用户和他们的经理之间建立联系。我有下面的简单选择来计算每个用户记录的maangerId。我看到有一个管理员应该分配给用户,但用户得到一个空白,并且缺少managerId的分配。

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 

userId是一个自我填充字段,因此运行良好,并且managerId字段填充了上面的逻辑。我注意到,当我看到像

这样的CorpManagerDN值时,我会得到空白的managerId值
  

CN = Tsahalis \,彼得   NBKPVUD,OU =预BAND,OU =帐户,OU = BAND,DC = CORP,DC = bankofamerica,DC = COM

我看到管理员的CORPDN价值

  

CN = Tsahalis \,彼得   NBKPVUD,OU =预BAND,OU =帐户,OU = BAND,DC = CORP,DC = bankofamerica,DC = COM

但是sql评估与它们不匹配?

1 个答案:

答案 0 :(得分: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