2010-12-02 85 views
3

我想没有任何的运气来了一个方法传递如何在T-SQL空间之前删除某些字符?

布鲁诺·米格尔·亚历山大B.米格尔·亚历山大

布鲁诺·亚历山大B.亚历山大

只是在SQL这样我就可以做一个大的查询,这部分在一个存储过程

任何人都可以提供任何帮助吗?你们可能已拥有的任何功能?

非常感谢。

+2

始终字符串 “布鲁诺”? – gbn 2010-12-02 21:13:19

+2

@gbn :)这是一个很好的 – 2010-12-02 21:14:06

回答

6

以第一个字符+空格中的所有内容。 8000是避免LEN调用否则

LEFT(MyValue, 1) + '.' + SUBSTRING(MyValue, CHARINDEX(' ', MyValue), 8000) 
+0

+1,工作有效地与任何字符串,而不仅仅是“布鲁诺” ;-) – 2010-12-02 21:18:26

3

尝试子与CHARINDEX找到空间

with MyTable as 
(
      SELECT 'Bruno Miguel Alexandre' as FullName 
    UNION SELECT 'Miguel Bruno Alexandre' 
    UNION SELECT 'Bruno Alexandre' 
    UNION SELECT 'Bruno Miguel' 
) 
SELECT 
    SubString (FullName, 1, 1) 
    + '.' 
    + SubString (FullName, CHARINDEX (' ', FullName, 1), 8000) 
FROM MyTable 

输出是

------------------------ 
B. Alexandre 
B. Miguel 
B. Miguel Alexandre 
M. Bruno Alexandre 

(4 row(s) affected)