sql 挑选一串人名并输出首字母 [英] sql to pick apart a string of a persons name and output the initials

查看:15
本文介绍了sql 挑选一串人名并输出首字母的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎样才能让 SQL 接受并返回传递给它的每个单词的第一个字母.

how can i get SQL to take a sting and return the first letter of each word passed into it.

我想使用这个 UDF 为我在数据库中的人名生成首字母.

I want to use this UDF for generating initials for peoples names I have in the DB.

名称可以是 2 个 (fname, lname) 或 3 个 (...mname) 字

names can be 2 (fname, lname)or 3(...mname) words

我使用的是 sql2005

i am using 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, 1, @separator_position, '')
    END

    RETURN
END

这篇关于sql 挑选一串人名并输出首字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆