加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2005 – sql选择一个人名字符串并输出首字母

发布时间:2020-12-12 06:19:17 所属栏目:MsSql教程 来源:网络整理
导读:我怎样才能让SQL接受刺痛并返回传入其中的每个单词的第一个字母. 我想使用这个UDF为数据库中的人名创建首字母. 名称可以是2(fname,lname)或3(… mname)个单词 我正在使用sql2005 解决方法 CREATE FUNCTION dbo.GetFirstLetter ( @Array VARCHAR(1000),@separa
我怎样才能让SQL接受刺痛并返回传入其中的每个单词的第一个字母.

我想使用这个UDF为数据库中的人名创建首字母.

名称可以是2(fname,lname)或3(… mname)个单词

我正在使用sql2005

解决方法

CREATE FUNCTION dbo.GetFirstLetter ( @Array VARCHAR(1000),@separator VARCHAR(10)) 
RETURNS @resultTable TABLE 
    (parseValue VARCHAR(100))
AS
BEGIN

    DECLARE @separator_position INT 
    DECLARE @array_value VARCHAR(1000) 

    SET @array = @array + @separator

    WHILE patindex('%' + @separator + '%',@array) <> 0 
    BEGIN

      SELECT @separator_position =  patindex('%' + @separator + '%',@array)
      SELECT @array_value = left(@array,@separator_position - 1)

        INSERT @resultTable
        VALUES (SUBSTRING(Cast(@array_value AS varchar),1,1))

      SELECT @array = stuff(@array,@separator_position,'')
    END

    RETURN
END

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读