2014-05-12 24 views
0

我从BES(黑莓企业服务器)获取信息。我需要将显示名称字段从BES更改为name.name格式。SQL选择用字符替换嵌入的空间,然后删除字符 -

显示名称显示为First First和First First Last-EXT。我需要使用它删除任何姓氏后的短划线,并添加一个。第一次和最后一次。

我试过使用REPLACE添加。 而且我已经试过CASE来删除 - 并在它之后进行翻译。但是,我怎样才能将两者结合成一个声明呢?

,CASE WHEN CHARINDEX('-',[DisplayName])>0 THEN LEFT([DisplayName], CHARINDEX('-',[DisplayName])-1) ELSE [DisplayName] END 

,REPLACE([DisplayName], ' ','.') AS 'Display Name' 

编辑:添加的代码块

回答

0

尝试下面的代码。

你已经完成了所有的工作。

在您的case语句中,您返回所需的DisplayName(从lastname和' - '之后删除' - '),所以使用该输出并应用replace将空白替换为'。'。

CASE WHEN CHARINDEX('-',[DisplayName])>0 
     THEN REPLACE(LEFT([DisplayName], CHARINDEX('-',[DisplayName])-1), ' ','.') 
     ELSE REPLACE([DisplayName], ' ','.') 
END 
+0

完美,谢谢! –

+0

这个答案出现在低质量的审查队列中,大概是因为你没有解释一些内容。如果你解释这一点(在你的答案中),你更有可能得到更多的赞扬 - 而提问者实际上学到了一些东西! –

+0

添加说明。 – AJP