我正试图想出一种方法来将“Bruno Miguel Alexandre”转换为“B. Miguel Alexandre”,并将“Bruno Alexandre”转换为“B. Alexandre”,这只需要在SQL中进行,以便我可以将其作为存储过程中的一部分。请问有人能提供任何帮助吗?你们可能已经有任何函数吗?非常感谢。
取第一个字符和空格后的所有内容。8000是为了避免调用LEN函数。
LEFT(MyValue, 1) + '.' + SUBSTRING(MyValue, CHARINDEX(' ', MyValue), 8000)
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)