sql 挑选一串人名并输出首字母 [英] sql to pick apart a string of a persons name and output the initials
本文介绍了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屋!
查看全文