日期:2014-05-18  浏览次数:20337 次

根据大写字母来截取字符串某些值
表中有某个字段来记录名字的拼音,现在显示时要按用户的要求显示格式


Chun Xia Song 要显示成 Song C.X
LiXie 要显示成 Xie L
Chen Xi Ou Yang  要显示成 Ou Yang C.X  


要怎么转换?名字有四个字时比较特别

------解决方案--------------------
SQL code

--写个函数试试
GO
IF OBJECT_ID('Fun_test')IS NOT NULL
DROP FUNCTION Fun_test
GO
CREATE FUNCTION Fun_test(@name varchar(20))
RETURNS VARCHAR(20)
AS
BEGIN
  --IF CHARINDEX(' ',@name)>0
    --begin
     declare @str varchar(20)
     set @str=''
     declare @firstname varchar(10)
     declare @midname varchar(10)
     declare @lastname varchar(10)
     select @firstname=(left(@name,charindex(' ',@name)-1))
     select @midname=(substring(@name,charindex(' ',@name)+1,charindex(' ',@name,charindex(' ',@name))))
     select @lastname=reverse(left(reverse(@name),len(@name)-3-charindex(' ',@name,charindex(' ',@name))))
     select @str=@lastname+' '+left(@firstname,1)+'.'+left(@midname,1)
     return @str
    --end
END
go


GO
CREATE TABLE #TEST(
NAME VARCHAR(20)
)
INSERT #TEST
SELECT 'Chen Xi Ou Yang' UNION ALL
SELECT 'Chun Xia Song'


SELECT dbo.Fun_test(NAME) AS NEMAE FROM #TEST
/*
NEMAE
Ou Yang C.X
 Song C.X
*/