在中MS-SQL Server,有没有一种方法可以获取字符串中每个单词的第一个字母?例如:
MS-SQL Server
姓名:
迈克尔·约瑟夫·杰克逊
询问:
SELECT name, [function] as initial FROM Customers
结果:
MJJ
此函数将针对源字符串中的多个连续空格屏蔽您的结果:
CREATE FUNCTION dbo.fnFirsties ( @str NVARCHAR(4000) ) RETURNS NVARCHAR(2000) AS BEGIN DECLARE @retval NVARCHAR(2000); SET @str=RTRIM(LTRIM(@str)); SET @retval=LEFT(@str,1); WHILE CHARINDEX(' ',@str,1)>0 BEGIN SET @str=LTRIM(RIGHT(@str,LEN(@str)-CHARINDEX(' ',@str,1))); SET @retval+=LEFT(@str,1); END RETURN @retval; END GO SELECT dbo.fnFirsties('Michael Joseph Jackson'); SELECT dbo.fnFirsties(' Michael Joseph Jackson '); -- multiple space protection :)
MJJ MJJ