Sql 我是不是在广告里把经理的名字去掉了?

Sql 我是不是在广告里把经理的名字去掉了?,sql,sql-server-2008,sql-server-2005,Sql,Sql Server 2008,Sql Server 2005,我一辈子都搞不清楚我到底做错了什么 当我运行查询将名称从Active Directory拉入sql server数据库时,输出如下所示: CN=Jackson\, Andrew,OU=Information Technology,OU=Departments,DC=MO,DC=canton,DC=MA,DC=us. Jackson, Andrew 我想做的是每次跳闸,这样输出看起来更像这样: CN=Jackson\, Andrew,OU=Information Technology,OU=D

我一辈子都搞不清楚我到底做错了什么

当我运行查询将名称从Active Directory拉入sql server数据库时,输出如下所示:

CN=Jackson\, Andrew,OU=Information Technology,OU=Departments,DC=MO,DC=canton,DC=MA,DC=us.
Jackson, Andrew
我想做的是每次跳闸,这样输出看起来更像这样:

CN=Jackson\, Andrew,OU=Information Technology,OU=Departments,DC=MO,DC=canton,DC=MA,DC=us.
Jackson, Andrew
下面的代码让我失望。它一直告诉我REPLACE需要3个参数

我似乎不明白

REPLACE(LEFT(manager,charindex('','',manager)-1),''CN='','''') as Manager

正如Marc在评论中所写的,也许有更好的方法来进行查询。我没有广告方面的经验,所以我不会去那里


不过,关于替换,问题似乎是CN=。这些不应该是单引号吗?换句话说,它应该是“CN=”。

正如马克在评论中所写的,可能有更好的方法来进行查询。我没有广告方面的经验,所以我不会去那里


不过,关于替换,问题似乎是CN=。这些不应该是单引号吗?换句话说,它应该是“CN=”。

关于现有查询的问题,似乎所有的双单引号都应该是单引号

select REPLACE(LEFT(manager,charindex(',',manager)-1),'CN=','') as Manager

关于现有查询的问题,似乎所有的双单引号都应该是单引号

select REPLACE(LEFT(manager,charindex(',',manager)-1),'CN=','') as Manager
这个解决方案对您的数据做了很多假设,但它可能适合您

此解决方案对您的数据进行了大量假设,但它可能适合您。

使用字符串中不太可能出现的字符或字符组合替换\,然后在、、上拆分,然后将特殊字符/组合转换为、:

用字符串中不太可能出现的字符或字符组合替换\,然后在、、上拆分,然后将特殊字符/组合转换为、:


查询是什么样子的?您应该能够为任何特定记录指定单个字段,而不是获取整个OU树。好吧,这不会给出您想要的确切结果,但至少可以修复您当前的查询。如果要为每个字符串使用两个引号,则应使用一个:选择REPLACELEFTManager、charindex'、',Manager-1、'CN=',因为Manager正在指定各个字段。正如@Jeff所说,我也不精通Active Directory。所以,如果有人知道管理者的领域,我很乐意使用它。至于你的评论杰夫,这应该只是一个普通的查询。我正在使用OpenQuery。然而,我发布的示例查询是针对外部部分的,它应该只是关于如何使用REPLACELEFT…CharIndex的常规查询。“我相信有更好的方法来完成我的目标。”拉马克,你的问题几乎100%正确。我在找“杰克逊”,安德鲁,你知道怎么让它看起来像杰克逊吗?非常感谢您的帮助。@supergrady的回答似乎完全符合您的要求。问题是什么样的?您应该能够为任何特定记录指定单个字段,而不是获取整个OU树。好吧,这不会给出您想要的确切结果,但至少可以修复您当前的查询。如果要为每个字符串使用两个引号,则应使用一个:选择REPLACELEFTManager、charindex'、',Manager-1、'CN=',因为Manager正在指定各个字段。正如@Jeff所说,我也不精通Active Directory。所以,如果有人知道管理者的领域,我很乐意使用它。至于你的评论杰夫,这应该只是一个普通的查询。我正在使用OpenQuery。然而,我发布的示例查询是针对外部部分的,它应该只是关于如何使用REPLACELEFT…CharIndex的常规查询。“我相信有更好的方法来完成我的目标。”拉马克,你的问题几乎100%正确。我在找“杰克逊”,安德鲁,你知道怎么让它看起来像杰克逊吗?非常感谢您的帮助。@supergrady的回答似乎完全符合您的要求。@bobs是对的。不只是CN=,还有所有的引号。@bobs是对的。不仅仅是CN=,还有所有的引号。是您的广告查询的输出:CN=Jackson\,Andrew,OU=Information Technology,OU=Departments,DC=MO,DC=canton,DC=MA,DC=us。是您的广告查询的输出:CN=Jackson\,Andrew,OU=Information Technology,OU=Departments,DC=MO,DC=canton,DC=MA,DC=us。