当前位置: 首页 > 面试题库 >

获取SQL字符串中每个单词的第一个字母

包沈义
2023-03-14
问题内容

在中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


 类似资料:
  • 问题内容: 我正在尝试使程序执行以下操作: 假设我们有一个被设置为的被叫。我想输出给用户,每个单词的第一个字符。我尝试使用该方法,但是没有成功。 我的代码: 我试图检测是否有空格,那么我可以简单地获取下一个索引。谁能告诉我我在做什么错? 问题答案: 尝试按(空格)分割,然后获取每个单词的(第一个字符)并按如下方式打印:

  • 问题内容: Java中是否内置了一个函数,该函数可以大写字符串中每个单词的第一个字符,而不会影响其他单词? 例子: jon skeet -> Jon Skeet miles o’Brien-> Miles O’Brien(B仍然是大写字母,这排除了标题大小写) old mcdonald-> Old Mcdonald* (Old McDonald也可以找到,但我不认为它会那么聪明。) 快速浏览一下J

  • 我有一个函数,应该把字符串中每个单词的第一个字母大写,但不知何故,它提供了不正确的结果,知道为什么吗?我需要修理一下。 所以输入:hello dolly输出:hello dolly。 空格计算正确,但大写不正确。

  • 问题内容: 文字为: 我只想得到 我试过了 : 但这给了我: 问题答案: 正则表达式是不必要的。只需使用或即可。

  • 问题内容: 我有一个字符串“ Magic Word”。我需要修剪字符串以仅提取“ Magic”。我正在执行以下代码。 我只需要第一个字。是否有其他方法可以修剪字符串以仅在出现第一个单词时得到第一个单词? 问题答案: